{ "info": { "author": "Zsolt Cserna", "author_email": "zsolt.cserna@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Pytest", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "[![Build Status](https://travis-ci.org/csernazs/pytest-httpserver.svg?branch=master)](https://travis-ci.org/csernazs/pytest-httpserver)\n[![Documentation Status](https://readthedocs.org/projects/pytest-httpserver/badge/?version=latest)](https://pytest-httpserver.readthedocs.io/en/latest/?badge=latest)\n [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n## pytest_httpserver\n\nHTTP server for pytest\n\n\n### Nutshell\n\nThis library is designed to help to test http clients without contacting the real http server.\nIn other words, it is a fake http server which is accessible via localhost can be started with\nthe pre-defined expected http requests and their responses.\n\n### Example\n\n```python\ndef test_my_client(httpserver): # httpserver is a pytest fixture which starts the server\n # set up the server to serve /foobar with the json\n httpserver.expect_request(\"/foobar\").respond_with_json({\"foo\": \"bar\"})\n # check that the request is served\n assert requests.get(httpserver.url_for(\"/foobar\")).json() == {'foo': 'bar'}\n```\n\nYou can also use the library without pytest. There's a with statement to ensure that the server is stopped.\n\n\n```python\nwith HTTPServer() as httpserver:\n # set up the server to serve /foobar with the json\n httpserver.expect_request(\"/foobar\").respond_with_json({\"foo\": \"bar\"})\n # check that the request is served\n print(requests.get(httpserver.url_for(\"/foobar\")).json())\n```\n\n### Documentation\n\nPlease find the API documentation at https://pytest-httpserver.readthedocs.io/en/latest/.\n\n### Features\n\nYou can set up a dozen of expectations for the requests, and also what response should be sent by the server to the client.\n\n\n#### Requests\n\nThere are three different types:\n\n- **permanent**: this will be always served when there's match for this request, you can make as many HTTP requests as you want\n- **oneshot**: this will be served only once when there's a match for this request, you can only make 1 HTTP request\n- **ordered**: same as oneshot but the order must be strictly matched to the order of setting up\n\nYou can also fine-tune the expected request. The following can be specified:\n\n- URI (this is a must)\n- HTTP method\n- headers\n- query string\n- data (HTTP payload of the request)\n\n\n#### Responses\n\nOnce you have the expectations for the request set up, you should also define the response you want to send back.\nThe following is supported currently:\n\n- respond arbitrary data (string or bytearray)\n- respond a json (a python dict converted in-place to json)\n- respond a Response object of werkzeug\n- use your own function\n\nSimilar to requests, you can fine-tune what response you want to send:\n\n- HTTP status\n- headers\n- data\n\n\n### Missing features\n* HTTP/2\n* Keepalive\n* ~~TLS~~\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.github.com/csernazs/pytest-httpserver", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pytest-httpserver", "package_url": "https://pypi.org/project/pytest-httpserver/", "platform": "any", "project_url": "https://pypi.org/project/pytest-httpserver/", "project_urls": { "Homepage": "https://www.github.com/csernazs/pytest-httpserver" }, "release_url": "https://pypi.org/project/pytest-httpserver/0.3.4/", "requires_dist": [ "werkzeug", "typing ; python_version < \"3.5\"", "coverage ; extra == 'dev'", "ipdb ; extra == 'dev'", "pycodestyle ; extra == 'dev'", "pylint ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "reno ; extra == 'dev'", "requests ; extra == 'dev'", "rope ; extra == 'dev'", "sphinx ; extra == 'dev'", "sphinx-rtd-theme ; extra == 'dev'", "wheel ; extra == 'dev'", "coverage ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "requests ; extra == 'test'" ], "requires_python": ">=3.4", "summary": "pytest-httpserver is a httpserver for pytest", "version": "0.3.4" }, "last_serial": 5745309, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c327f01ebe8f58ec94ebc3a62f0ca01d", "sha256": "798afc904733a61b302b3f13e92257842f84b71130545d01519f0b6b47f92247" }, "downloads": -1, "filename": "pytest_httpserver-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c327f01ebe8f58ec94ebc3a62f0ca01d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8974, "upload_time": "2018-08-19T10:15:09", "url": "https://files.pythonhosted.org/packages/dd/c2/19820ce3747f5915fee85e4707bad81211a9ee1a1e137e173ebebd63cc51/pytest_httpserver-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d988fbea61d1b4bb2e7940c59def726", "sha256": "b60d2668d74c8c41072ad64f759d5a57f9c7298b78460ce39121974a172aa830" }, "downloads": -1, "filename": "pytest_httpserver-0.1.tar.gz", "has_sig": false, "md5_digest": "1d988fbea61d1b4bb2e7940c59def726", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8236, "upload_time": "2018-08-19T10:15:10", "url": "https://files.pythonhosted.org/packages/0e/c9/69adc809f458df589ec0febb3a6bcb2e63386433f1aeab67d9f9dd9adea1/pytest_httpserver-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "99cc09e87b824b242b894a0f0c9f0feb", "sha256": "1592a29475004bf361a2b370cbdb088dad07efed01200a9988c18a1fca4c19b8" }, "downloads": -1, "filename": "pytest_httpserver-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "99cc09e87b824b242b894a0f0c9f0feb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9029, "upload_time": "2018-08-19T11:31:49", "url": "https://files.pythonhosted.org/packages/ed/41/3e1ebb5953fa4831ee5edb755ca3d611ba1dc8c0c92442c0c50e1f9dc69c/pytest_httpserver-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dff742cfe426b965bd228c2230e9dd12", "sha256": "dc5fd157a6c25604fa6ba8717d30da3e40ebc4fa853401ab7541efdc06cbfe0e" }, "downloads": -1, "filename": "pytest_httpserver-0.1.1.tar.gz", "has_sig": false, "md5_digest": "dff742cfe426b965bd228c2230e9dd12", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8342, "upload_time": "2018-08-19T11:31:50", "url": "https://files.pythonhosted.org/packages/42/4e/23d3342d4c6db2631fa539d3dd773ce2e8bba169eb1bf9d32280e89f2a81/pytest_httpserver-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "16efcb24d22d06edd2353e97652cb000", "sha256": "5a0a2577854309284590bc118fd34821140787c9a066900a9f2d623e3cb68e0d" }, "downloads": -1, "filename": "pytest_httpserver-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "16efcb24d22d06edd2353e97652cb000", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9471, "upload_time": "2018-10-28T20:16:57", "url": "https://files.pythonhosted.org/packages/fd/db/15408909914bab0c6d6602e38fb8926ad37786f089a1a84deaac272aaf92/pytest_httpserver-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dac1ae9e7749fe30cdc128b725b3bd8a", "sha256": "a620fe9bdc50b7aa52f11944b8706d2e3ac3cd85a489051bc72835f003a65d63" }, "downloads": -1, "filename": "pytest_httpserver-0.2.tar.gz", "has_sig": false, "md5_digest": "dac1ae9e7749fe30cdc128b725b3bd8a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8838, "upload_time": "2018-10-28T20:16:58", "url": "https://files.pythonhosted.org/packages/a7/7a/fe8c46d35263e240ed60b178f151ea00e202129ff5885c36ed1637e9b7d7/pytest_httpserver-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "957b88ff78e17640bc7f4cabeaa0bfaf", "sha256": "cee2ef07b753bc7e7d5432d69a62c5099eb184dc095a5d5eeb5b3a3564d92e3c" }, "downloads": -1, "filename": "pytest_httpserver-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "957b88ff78e17640bc7f4cabeaa0bfaf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9480, "upload_time": "2018-10-28T20:56:14", "url": "https://files.pythonhosted.org/packages/f7/cc/bb5196af44c120392b025cd8b786d79e71928167556da2d9625217f69291/pytest_httpserver-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e12ca7fca827849dae02c3b119e6f4f6", "sha256": "94e4a9063d34222ee386eeca8d4cdd48c2870270b22bcd2d3f3ce2505ae56893" }, "downloads": -1, "filename": "pytest_httpserver-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e12ca7fca827849dae02c3b119e6f4f6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8844, "upload_time": "2018-10-28T20:56:16", "url": "https://files.pythonhosted.org/packages/cb/d0/6a3d0d79a57d1134dd1ed8bed94b207194f24e62dfe88db0c2a4866d74ca/pytest_httpserver-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "83c0c092cac6617eedc292f0b6dd5f90", "sha256": "4d3aa50eef4553abc2a31bfdca3d783af36dfc22d424d5dd8b749e88e6bf3972" }, "downloads": -1, "filename": "pytest_httpserver-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "83c0c092cac6617eedc292f0b6dd5f90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9950, "upload_time": "2019-03-02T07:16:13", "url": "https://files.pythonhosted.org/packages/b6/2d/bc57b999f697339bc5066910e204415fe059d458ac685b30df2f05316cd8/pytest_httpserver-0.2.2-py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "cfa8a49d6a3ad00cc36a47579cac6dc5", "sha256": "689391ad6bef74f4c9d4d0d1bb2b239a87a780431012fdbdd6f96fac0251c544" }, "downloads": -1, "filename": "pytest_httpserver-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cfa8a49d6a3ad00cc36a47579cac6dc5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13702, "upload_time": "2019-03-11T10:29:52", "url": "https://files.pythonhosted.org/packages/57/6f/e94338842903f0dc4cd2c44ee181b4ce9d7685504b9eec1937d785f7afb0/pytest_httpserver-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7854841762e7014225e740d4b1798aa", "sha256": "8a900fdcc75aad86383ae9453dde707fb948fdded1e467ccafc34fa4a0ca7ef8" }, "downloads": -1, "filename": "pytest_httpserver-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f7854841762e7014225e740d4b1798aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11400, "upload_time": "2019-03-11T10:29:53", "url": "https://files.pythonhosted.org/packages/1d/df/4cae8c4579973458000380cfb0c487567502ab9d863947d0fec7197ca524/pytest_httpserver-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "fbbb4042cd8f16584cd24abfb67c89be", "sha256": "d1ea7aaa367d5ed189477b3940622dc90abeba0fae53576e60ea41592430e0c9" }, "downloads": -1, "filename": "pytest_httpserver-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fbbb4042cd8f16584cd24abfb67c89be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 12371, "upload_time": "2019-07-25T06:42:01", "url": "https://files.pythonhosted.org/packages/61/24/7f8194b7c3cdbe5f5b8fab157600ed116f3f4a58fb669f2a1f707e80263d/pytest_httpserver-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2d25a432648a4afe6df465f04e30a62", "sha256": "270b5b7278d6af6e86f9ca51a15bc4a362590bb3e2a61b1f65a4bc487739c8e0" }, "downloads": -1, "filename": "pytest_httpserver-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a2d25a432648a4afe6df465f04e30a62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 12840, "upload_time": "2019-07-25T06:42:04", "url": "https://files.pythonhosted.org/packages/7c/d3/ec8d733b075dd57a0c2a00c8c8feca65bc34ca719dee1c2fd0aa91e4cd3a/pytest_httpserver-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4cd494658e90c8282cfe73644f8734d5", "sha256": "1196f6d3fb67b2bc1735d02166addead86d9a5d87735df300ea0ec4aa64ccc14" }, "downloads": -1, "filename": "pytest_httpserver-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4cd494658e90c8282cfe73644f8734d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13404, "upload_time": "2019-07-31T21:26:29", "url": "https://files.pythonhosted.org/packages/39/e5/36f002d3df3a85ffa7b5f0983182aae96a8882a223267acf6b0a6625977e/pytest_httpserver-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7c136985a0ce97c0bfee403d0f79e47", "sha256": "76fa3087546a624e3c6170a2c3f6541063f76e0e9cef45eb638c5e12a8ee5253" }, "downloads": -1, "filename": "pytest_httpserver-0.3.2.tar.gz", "has_sig": false, "md5_digest": "a7c136985a0ce97c0bfee403d0f79e47", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 25001, "upload_time": "2019-07-31T21:26:30", "url": "https://files.pythonhosted.org/packages/dc/7a/672bca866cf027056b8d74560da9e49ef0ad532db8a3e4d5562d9de9e107/pytest_httpserver-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "13a77b0b065fff83cfafba04de5ff5b2", "sha256": "5149071cdcebf9772a7958306a621bf5dab4293d31cc34ef079fe4bf9a0542f3" }, "downloads": -1, "filename": "pytest_httpserver-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "13a77b0b065fff83cfafba04de5ff5b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13405, "upload_time": "2019-08-01T12:39:55", "url": "https://files.pythonhosted.org/packages/95/1e/46729b5a58a70565addaed09d68cb4f03b5d217597214e6199e82c3d5238/pytest_httpserver-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98f36bf89f330b4180430d183f8a308a", "sha256": "76a1e5fe94cbbedaa70378818ec45d593d98f121e2c0b996b19a91719d477a04" }, "downloads": -1, "filename": "pytest_httpserver-0.3.3.tar.gz", "has_sig": false, "md5_digest": "98f36bf89f330b4180430d183f8a308a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 23597, "upload_time": "2019-08-01T12:40:17", "url": "https://files.pythonhosted.org/packages/04/d2/abf79f903fdf96ff1f3c7a5affbc35490155646e2ca04729664cc8782480/pytest_httpserver-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "bca9c62b0d9d9a3dffcca8215768e540", "sha256": "7feab352b2626d1a0ecdebffcac5e5875979f08ad7e621b2289980ce8f6ebc5b" }, "downloads": -1, "filename": "pytest_httpserver-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "bca9c62b0d9d9a3dffcca8215768e540", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13401, "upload_time": "2019-08-28T20:15:59", "url": "https://files.pythonhosted.org/packages/98/69/6b97a1e642893eee78fe6582aa944260d4c5f02e4ff41b5fc575af8451a1/pytest_httpserver-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ce50283b3f6d75543f2a6e0dc88dfdc", "sha256": "c7269aed8b4f2d24e41eaa2034dd9ab7ae02b0cb6e71afeae93127832920ec8d" }, "downloads": -1, "filename": "pytest_httpserver-0.3.4.tar.gz", "has_sig": false, "md5_digest": "0ce50283b3f6d75543f2a6e0dc88dfdc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24683, "upload_time": "2019-08-28T20:16:01", "url": "https://files.pythonhosted.org/packages/7d/8d/58276f7d74cdc9e94850873b40bd7fc71f7be47d764b32af1117b05278a9/pytest_httpserver-0.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bca9c62b0d9d9a3dffcca8215768e540", "sha256": "7feab352b2626d1a0ecdebffcac5e5875979f08ad7e621b2289980ce8f6ebc5b" }, "downloads": -1, "filename": "pytest_httpserver-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "bca9c62b0d9d9a3dffcca8215768e540", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13401, "upload_time": "2019-08-28T20:15:59", "url": "https://files.pythonhosted.org/packages/98/69/6b97a1e642893eee78fe6582aa944260d4c5f02e4ff41b5fc575af8451a1/pytest_httpserver-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ce50283b3f6d75543f2a6e0dc88dfdc", "sha256": "c7269aed8b4f2d24e41eaa2034dd9ab7ae02b0cb6e71afeae93127832920ec8d" }, "downloads": -1, "filename": "pytest_httpserver-0.3.4.tar.gz", "has_sig": false, "md5_digest": "0ce50283b3f6d75543f2a6e0dc88dfdc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24683, "upload_time": "2019-08-28T20:16:01", "url": "https://files.pythonhosted.org/packages/7d/8d/58276f7d74cdc9e94850873b40bd7fc71f7be47d764b32af1117b05278a9/pytest_httpserver-0.3.4.tar.gz" } ] }