{ "info": { "author": "Florent Xicluna", "author_email": "florent.xicluna@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development" ], "description": "urllib3-mock\n============\n\nA utility library for mocking out the `urllib3`_ Python library.\n\nThis is an adaptation of the `responses`_ library.\n\n.. image:: https://travis-ci.org/florentx/urllib3-mock.png?branch=master\n\t:target: https://travis-ci.org/florentx/urllib3-mock\n\n\n.. _urllib3: https://urllib3.readthedocs.org/\n.. _responses: https://github.com/getsentry/responses\n\n\nResponse body as string\n-----------------------\n\n.. code-block:: python\n\n from urllib3_mock import Responses\n import requests\n\n responses = Responses('requests.packages.urllib3')\n\n @responses.activate\n def test_my_api():\n responses.add('GET', '/api/1/foobar',\n body='{\"error\": \"not found\"}', status=404,\n content_type='application/json')\n\n resp = requests.get('http://twitter.com/api/1/foobar')\n\n assert resp.json() == {\"error\": \"not found\"}\n\n assert len(responses.calls) == 1\n assert responses.calls[0].request.url == '/api/1/foobar'\n assert responses.calls[0].request.host == 'twitter.com'\n assert responses.calls[0].request.scheme == 'http'\n\nRequest callback\n----------------\n\n.. code-block:: python\n\n import json\n\n from urllib3_mock import Responses\n import requests\n\n responses = Responses('requests.packages.urllib3')\n\n @responses.activate\n def test_calc_api():\n\n def request_callback(request):\n payload = json.loads(request.body)\n resp_body = {'value': sum(payload['numbers'])}\n headers = {'request-id': '728d329e-0e86-11e4-a748-0c84dc037c13'}\n return (200, headers, json.dumps(resp_body))\n\n responses.add_callback('POST', '/sum',\n callback=request_callback,\n content_type='application/json')\n\n resp = requests.post(\n 'http://calc.com/sum',\n json.dumps({'numbers': [1, 2, 3]}),\n headers={'content-type': 'application/json'},\n )\n\n assert resp.json() == {'value': 6}\n\n assert len(responses.calls) == 1\n assert responses.calls[0].request.url == '/sum'\n assert responses.calls[0].request.host == 'calc.com'\n assert (\n responses.calls[0].response.headers['request-id'] ==\n '728d329e-0e86-11e4-a748-0c84dc037c13'\n )\n\nInstead of passing a string URL into `responses.add` or `responses.add_callback`\nyou can also supply a compiled regular expression.\n\n.. code-block:: python\n\n import re\n from urllib3_mock import Responses\n import requests\n\n responses = Responses('requests.packages.urllib3')\n\n # Instead of\n responses.add('GET', '/api/1/foobar',\n body='{\"error\": \"not found\"}', status=404,\n content_type='application/json')\n\n # You can do the following\n url_re = re.compile(r'/api/\\d+/foobar')\n responses.add('GET', url_re,\n body='{\"error\": \"not found\"}', status=404,\n content_type='application/json')\n\nA response can also throw an exception as follows.\n\n.. code-block:: python\n\n from urllib3_mock import Responses\n from requests.packages.urllib3.exceptions import HTTPError\n\n exception = HTTPError('Something went wrong')\n\n responses = Responses('requests.packages.urllib3')\n responses.add('GET', '/api/1/foobar',\n body=exception)\n # All calls to 'http://twitter.com/api/1/foobar' will throw exception.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/florentx/urllib3-mock", "keywords": null, "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "urllib3-mock", "package_url": "https://pypi.org/project/urllib3-mock/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/urllib3-mock/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/florentx/urllib3-mock" }, "release_url": "https://pypi.org/project/urllib3-mock/0.3.3/", "requires_dist": null, "requires_python": null, "summary": "A utility library for mocking out the `urllib3` Python library.", "version": "0.3.3" }, "last_serial": 1508582, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "3a9fcc9c27c8590de42f8592c0410158", "sha256": "40f3f0b869b0bc2cdfe71590413dd93f894d4e8b98acf7b8d89f5f9080ffe312" }, "downloads": -1, "filename": "urllib3_mock-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3a9fcc9c27c8590de42f8592c0410158", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 7256, "upload_time": "2014-11-30T17:20:33", "url": "https://files.pythonhosted.org/packages/fb/f5/a7a2044faa67f91389a1a09675664ea465c6613d8faa5d2543b27644eb9d/urllib3_mock-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "775073a7527e46c7e4e99846eea68a94", "sha256": "a091f48c9dade489b47a7c25ee8343388882c25377233384e4edf6fb74a514ff" }, "downloads": -1, "filename": "urllib3-mock-0.3.1.tar.gz", "has_sig": false, "md5_digest": "775073a7527e46c7e4e99846eea68a94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9863, "upload_time": "2014-11-30T17:20:30", "url": "https://files.pythonhosted.org/packages/c5/80/f33e2e2c69e7be57bf1a506c1844c37659f44dd04409b3895d3049d6e20c/urllib3-mock-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "81388d9ddbde970e4d4fdaba11c1807d", "sha256": "40522cad41cbdad21ef72b6add471d33218f56a87aa6423834d27c140579b568" }, "downloads": -1, "filename": "urllib3_mock-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "81388d9ddbde970e4d4fdaba11c1807d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 7258, "upload_time": "2014-11-30T17:25:00", "url": "https://files.pythonhosted.org/packages/c0/c4/b783557caedd912d86bad3778301126eb6ebde20f29090a9e6753013e205/urllib3_mock-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c276daee606226d22be2b7422231b049", "sha256": "691be6a9a93b7cb3a8f631cda64aabef148511d059fcf935f2865aad34eeee04" }, "downloads": -1, "filename": "urllib3-mock-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c276daee606226d22be2b7422231b049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9892, "upload_time": "2014-11-30T17:24:58", "url": "https://files.pythonhosted.org/packages/f8/7c/00db7bb68e0eae9be5a7d4bdec39896bd065d6359fe890839f01adb1cf35/urllib3-mock-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "2aed73bd3b24204f1ce09c467d397402", "sha256": "702c90042920d771c9902b7b5b542551cc57f259078f4eada47ab4e8cdd11f1a" }, "downloads": -1, "filename": "urllib3_mock-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2aed73bd3b24204f1ce09c467d397402", "packagetype": "bdist_wheel", "python_version": "3.3", "requires_python": null, "size": 6270, "upload_time": "2015-04-16T23:10:38", "url": "https://files.pythonhosted.org/packages/64/ec/4c723737b2c7733b6b7257d6990aa813144e2bb96e75ceaf2791ee815277/urllib3_mock-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1eba839a0469cf029e7acd629cca21e2", "sha256": "b210037029ac96beac4f3e7b54f466c394b060525ea5a824803d5f5ed14558f1" }, "downloads": -1, "filename": "urllib3-mock-0.3.3.tar.gz", "has_sig": false, "md5_digest": "1eba839a0469cf029e7acd629cca21e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10408, "upload_time": "2015-04-16T23:10:35", "url": "https://files.pythonhosted.org/packages/b0/23/6a338cfb7c922e455725c3a4cd2df59f05294f0406f9670e20e115b331e2/urllib3-mock-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2aed73bd3b24204f1ce09c467d397402", "sha256": "702c90042920d771c9902b7b5b542551cc57f259078f4eada47ab4e8cdd11f1a" }, "downloads": -1, "filename": "urllib3_mock-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2aed73bd3b24204f1ce09c467d397402", "packagetype": "bdist_wheel", "python_version": "3.3", "requires_python": null, "size": 6270, "upload_time": "2015-04-16T23:10:38", "url": "https://files.pythonhosted.org/packages/64/ec/4c723737b2c7733b6b7257d6990aa813144e2bb96e75ceaf2791ee815277/urllib3_mock-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1eba839a0469cf029e7acd629cca21e2", "sha256": "b210037029ac96beac4f3e7b54f466c394b060525ea5a824803d5f5ed14558f1" }, "downloads": -1, "filename": "urllib3-mock-0.3.3.tar.gz", "has_sig": false, "md5_digest": "1eba839a0469cf029e7acd629cca21e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10408, "upload_time": "2015-04-16T23:10:35", "url": "https://files.pythonhosted.org/packages/b0/23/6a338cfb7c922e455725c3a4cd2df59f05294f0406f9670e20e115b331e2/urllib3-mock-0.3.3.tar.gz" } ] }