{ "info": { "author": "Gray King", "author_email": "grayking.w@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: Chinese (Simplified)", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": ".. image:: https://travis-ci.org/coldnight/flymock.svg?branch=master\n :target: https://travis-ci.org/coldnight/flymock\n.. image:: https://codecov.io/gh/coldnight/flymock/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/coldnight/flymock\n.. image:: https://img.shields.io/pypi/v/flymock.svg\n :target: https://pypi.python.org/pypi/flymock\n :alt: PyPI\n\nflymock\n=======\n\nEasy to mock external HTTP request in Tornado.\n\nInstallation\n------------\n\n.. code-block:: shell\n\n $ pip install --upgrade flymock\n\nCreate mock data\n----------------\n\nMake a directory in your tests package:\n\n.. code-block:: shell\n\n $ mkdir __mock__\n\nUse the hostname as the config filename, assume the url is ``http://example.com/demo``,\nthe config filename should be ``example.com.yaml``, the config see below:\n\n.. code-block:: yaml\n\n - path: /demo # path of the request to match\n method: GET # method of the request to match\n headers: # Response headers\n Content-Type: application/json\n body: Hello world # Response body\n code: 200 # Response status code\n\n - path: /file\n body_type: file # Use a file content as the response\n body: demo.json # Filename(same path of the config file)\n code: 202\n\n - path: /json\n body: # If body is an object, that will response JSON content.\n code: 2\n\n\nUsage\n-----\n\n.. code-block:: python\n\n import os\n\n from tornado import httpclient\n from tornado import testing\n\n from flymock import FlyPatcher\n\n\n class DemoTestCase(testing.AsyncTestCase):\n def setUp(self):\n super(DemoTestCase, self).setUp()\n path = os.path.join(os.path.dirname(__file__), \"__mock__\")\n self.patcher = FlyPatcher(path)\n self.http_client = httpclient.AsyncHTTPClient()\n self.patcher.start()\n\n def tearDown(self):\n super(DemoTestCase, self).tearDown()\n self.patcher.stop()\n\n @testing.gen_test\n def test_mocked(self):\n resp = yield self.http_client.fetch(\"http://example.com/demo\")\n self.assertEqual(resp.code, 200)\n\n\nAdjust response dynamic:\n\n.. code-block:: python\n\n patcher = FlyPatcher(\"/path/to/__mock__\")\n def hook(response):\n response.patch_json({\"a\": 1})\n\n with patcher.dynamic_hook(hook):\n # code goes here\n pass\n\n # shortcut to adjust JSON\n with patcher.patch_json({\"a\": 1}):\n # code goes here\n pass", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/coldnight/flymock", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "flymock", "package_url": "https://pypi.org/project/flymock/", "platform": "", "project_url": "https://pypi.org/project/flymock/", "project_urls": { "Homepage": "https://github.com/coldnight/flymock" }, "release_url": "https://pypi.org/project/flymock/0.0.6/", "requires_dist": null, "requires_python": "", "summary": "\"Easy to mock external HTTP request in Tornado.\"", "version": "0.0.6" }, "last_serial": 5485427, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "891c576af451fa61ccaed4019850ab06", "sha256": "e250986489dfd85c64a0c93bae3cccb332e77144161c1f99e8fa3f1be642e560" }, "downloads": -1, "filename": "flymock-0.0.1.tar.gz", "has_sig": false, "md5_digest": "891c576af451fa61ccaed4019850ab06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10874, "upload_time": "2017-12-07T08:32:21", "url": "https://files.pythonhosted.org/packages/aa/11/495eaaaeda7706b25e773eb7848e84e8bad760f659f6c7aa3b9d713c1068/flymock-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "5514ba20a51f0f7f8133a32bb02eddb1", "sha256": "dccac4c9f100cb2cec67ca3fa4e1b20694a7afe022c53c6d4ac788554a4bcaa3" }, "downloads": -1, "filename": "flymock-0.0.2.tar.gz", "has_sig": false, "md5_digest": "5514ba20a51f0f7f8133a32bb02eddb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11647, "upload_time": "2017-12-08T02:29:53", "url": "https://files.pythonhosted.org/packages/e0/02/a5325eaaa3c75c4a3f944465c2304df2faab05b0ce06a70e280bc9314d49/flymock-0.0.2.tar.gz" } ], "0.0.2.dev1": [ { "comment_text": "", "digests": { "md5": "e2efb8da68a935506c1d30355df09513", "sha256": "31de9f27318cf1d39a45e57379294f85a13a606cf37f3b7b96431cb043494b24" }, "downloads": -1, "filename": "flymock-0.0.2.dev1.tar.gz", "has_sig": false, "md5_digest": "e2efb8da68a935506c1d30355df09513", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10903, "upload_time": "2017-12-07T08:56:11", "url": "https://files.pythonhosted.org/packages/1b/cf/72931b105bf3898a7fec5e6b728fd737ed4474a87e877545db21f4082f28/flymock-0.0.2.dev1.tar.gz" } ], "0.0.2.dev4": [ { "comment_text": "", "digests": { "md5": "d645c805afbb0deee805d095866ce979", "sha256": "1ca44c1a39b9e91a22e0bead0e0642fb35e7d6ad685b79dd34512541381a5d4e" }, "downloads": -1, "filename": "flymock-0.0.2.dev4.tar.gz", "has_sig": false, "md5_digest": "d645c805afbb0deee805d095866ce979", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11625, "upload_time": "2017-12-07T10:36:35", "url": "https://files.pythonhosted.org/packages/60/a4/6b6adf266327f481ab9c7ee90d5a88bd2938c6cd957e2421d81b16e285c9/flymock-0.0.2.dev4.tar.gz" } ], "0.0.2.dev5": [ { "comment_text": "", "digests": { "md5": "e5c01eac5569342cc4910ed7fb7cab2e", "sha256": "2e361b07e68b12bd5eb64659e2630ece653e575850276b5f924f2dae8132a28e" }, "downloads": -1, "filename": "flymock-0.0.2.dev5.tar.gz", "has_sig": false, "md5_digest": "e5c01eac5569342cc4910ed7fb7cab2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11643, "upload_time": "2017-12-08T02:20:29", "url": "https://files.pythonhosted.org/packages/d6/b3/951693d0e4d8a764c56bc79f0383bb2f7acf563852dd7aa20af6e7edf39c/flymock-0.0.2.dev5.tar.gz" } ], "0.0.2.dev6": [ { "comment_text": "", "digests": { "md5": "ad77634542ae4d6bae7b2fe44f9d21b6", "sha256": "03436a2e58c7dd4257868137e825470685d580b6c0d280164c0384b94ab5fef7" }, "downloads": -1, "filename": "flymock-0.0.2.dev6.tar.gz", "has_sig": false, "md5_digest": "ad77634542ae4d6bae7b2fe44f9d21b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11657, "upload_time": "2017-12-08T02:28:19", "url": "https://files.pythonhosted.org/packages/fd/2b/961283cfd50a7b210f1b58c82a67c1a5a74cb773cc811394fad62ac1799a/flymock-0.0.2.dev6.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "44d00dfb53624a56e622dbe47fa0231d", "sha256": "4e96fa5c0d6723834db412cc0f07470cf8c4adef5da9d07c6f656df7ccfd08b6" }, "downloads": -1, "filename": "flymock-0.0.3.tar.gz", "has_sig": false, "md5_digest": "44d00dfb53624a56e622dbe47fa0231d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11918, "upload_time": "2017-12-08T03:00:05", "url": "https://files.pythonhosted.org/packages/85/c8/f0c5cb90493a1c41553bed7013a4c50ee92edc106b0c4c38e2f77a43f51a/flymock-0.0.3.tar.gz" } ], "0.0.3.dev1": [ { "comment_text": "", "digests": { "md5": "2979a871bd198ea5c81f2685ca1066e2", "sha256": "f3d8eb79fbbc9d85b7d05b65929b67f05a36bfd2375b34f40d8b068db54837fc" }, "downloads": -1, "filename": "flymock-0.0.3.dev1.tar.gz", "has_sig": false, "md5_digest": "2979a871bd198ea5c81f2685ca1066e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11933, "upload_time": "2017-12-08T02:58:57", "url": "https://files.pythonhosted.org/packages/aa/f8/b27f53969b88c5d2f8384bced13dda21480e986ff56d1c17ff15bc35218a/flymock-0.0.3.dev1.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "026db80768252cc06f8bb90d9c52ec1e", "sha256": "01ff4fd243d6fea00ffaeaa5818f679b8ce05784430658343cff42906e5eb032" }, "downloads": -1, "filename": "flymock-0.0.4.tar.gz", "has_sig": false, "md5_digest": "026db80768252cc06f8bb90d9c52ec1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12098, "upload_time": "2017-12-08T07:36:58", "url": "https://files.pythonhosted.org/packages/69/76/d654fc19a0dad0a011106cd55068ab902c07ae0f621261df3528aefcd656/flymock-0.0.4.tar.gz" } ], "0.0.4.dev3": [ { "comment_text": "", "digests": { "md5": "74f51164e0c170968a132fc2da81961d", "sha256": "66dcec323de3931a52ccd9fc4f821cdbca005dad39629aa15ff67ff97ccea45c" }, "downloads": -1, "filename": "flymock-0.0.4.dev3.tar.gz", "has_sig": false, "md5_digest": "74f51164e0c170968a132fc2da81961d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12107, "upload_time": "2017-12-08T06:54:23", "url": "https://files.pythonhosted.org/packages/11/8b/4f18807271f70184f68365ca70861155d175523a37e20e07279386bc0bf5/flymock-0.0.4.dev3.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "8e2b4b6293a31233682b957eafc7598e", "sha256": "72c29dec2d13c29cca881cf3620727162e556729fd366ace8c4ebab370acd43d" }, "downloads": -1, "filename": "flymock-0.0.5.tar.gz", "has_sig": false, "md5_digest": "8e2b4b6293a31233682b957eafc7598e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12294, "upload_time": "2018-07-16T06:09:23", "url": "https://files.pythonhosted.org/packages/f5/89/b9ec8f20d920daac8edbd613c85087be5048958ec3ff9a16d7eb7622b610/flymock-0.0.5.tar.gz" } ], "0.0.5.dev1": [ { "comment_text": "", "digests": { "md5": "99265eeacb22b9a0955646ec34653064", "sha256": "e9beabe9535ed7f00d311802f6bed7c59f678cc1a3c9d2e77e0a0a914a86a426" }, "downloads": -1, "filename": "flymock-0.0.5.dev1.tar.gz", "has_sig": false, "md5_digest": "99265eeacb22b9a0955646ec34653064", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12179, "upload_time": "2018-07-16T05:47:10", "url": "https://files.pythonhosted.org/packages/40/d0/4bcad4bf5cf4fd5056eaa14232cfb8096cfd497fc32e53381c2edc9616ec/flymock-0.0.5.dev1.tar.gz" } ], "0.0.5.dev3": [ { "comment_text": "", "digests": { "md5": "32af3f1356c246546b755ba977bc1470", "sha256": "eff7833466451682ec10d6727929d9fa50a6f274c4cf8224825f880686ac4e4f" }, "downloads": -1, "filename": "flymock-0.0.5.dev3.tar.gz", "has_sig": false, "md5_digest": "32af3f1356c246546b755ba977bc1470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12284, "upload_time": "2018-07-16T06:01:14", "url": "https://files.pythonhosted.org/packages/7e/05/1cfa7b8ae4c39025287d8fb8b8d03fde0dfbbc21a1eadf3a3a05f58b7678/flymock-0.0.5.dev3.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "56a12a6f26c48a7707b756acc0c32392", "sha256": "fbe8f9ea6b1ae4af1e5fb887203bed3fe4047e5b346795ecb460a27123a9cdc8" }, "downloads": -1, "filename": "flymock-0.0.6.tar.gz", "has_sig": false, "md5_digest": "56a12a6f26c48a7707b756acc0c32392", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11270, "upload_time": "2019-07-04T08:01:05", "url": "https://files.pythonhosted.org/packages/bc/6a/40c2e56ef8a3c2a771503cc0986d30d81fe470a498ed63b2827575b42546/flymock-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "56a12a6f26c48a7707b756acc0c32392", "sha256": "fbe8f9ea6b1ae4af1e5fb887203bed3fe4047e5b346795ecb460a27123a9cdc8" }, "downloads": -1, "filename": "flymock-0.0.6.tar.gz", "has_sig": false, "md5_digest": "56a12a6f26c48a7707b756acc0c32392", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11270, "upload_time": "2019-07-04T08:01:05", "url": "https://files.pythonhosted.org/packages/bc/6a/40c2e56ef8a3c2a771503cc0986d30d81fe470a498ed63b2827575b42546/flymock-0.0.6.tar.gz" } ] }