{ "info": { "author": "Mathias Fu\u00dfenegger", "author_email": "pip@zignar.net", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython" ], "description": "=================\nTornado Testlayer\n=================\n\nThis is a simple testlayer that can be used to test tornado web applications\nusing the `zope testrunner`_.\n\nFirst lets create a simple sample application::\n\n >>> from tornado.web import Application, RequestHandler\n >>> class HelloWorldHandler(RequestHandler):\n ... def get(self):\n ... return self.write('Hello World')\n\nImporting the layer::\n\n >>> from tornado_testing.layer import TornadoLayer\n\nCreate the layer using the sample application created earlier::\n\n >>> my_app = Application(handlers=[(r'/', HelloWorldHandler)])\n >>> tornado_layer = TornadoLayer(my_app, port=None)\n >>> type(tornado_layer.port)\n \n\n.. note::\n\n If the port is None the next free port will be used.\n\nSet up the layer::\n\n >>> tornado_layer.setUp()\n\nNow the layer should be running and therefore tornado will serve requests::\n\n >>> from urllib.request import urlopen\n >>> url = 'http://localhost:{}/'.format(tornado_layer.port)\n >>> f = urlopen(url)\n >>> f.read()\n b'Hello World'\n\n >>> f.close()\n >>> tornado_layer.tearDown()\n\n\nPatches\n=======\n\nThe testlayer supports patches which can be used to mock out any modules that\nare used inside a tornado application.\n\nHere is an example of a tornado application that uses the ``os`` modules\n``listdir`` method::\n\n >>> import json\n >>> class ListDirHandler(RequestHandler):\n ... def get(self):\n ... import os\n ... return self.write(json.dumps(os.listdir('.')))\n\n >>> my_app = Application(handlers=[(r'/', ListDirHandler)], debug=True)\n\n.. note::\n\n Usually the import also works outside the method on module level. But since\n this example is executable using doctest it had to be put inside the method\n as otherwise the patch wouldn't work.\n\nNow define the fake ``listdir`` method::\n\n >>> def fake_listdir(path):\n ... return ['fake_file']\n\nCreate the monkey patch::\n\n >>> from unittest.mock import patch\n >>> listdir_patch = patch('os.listdir', fake_listdir)\n\nCreate the test layer using the patch::\n\n >>> tornado_layer = TornadoLayer(my_app, port=None, patches=[listdir_patch])\n >>> tornado_layer.setUp()\n\n >>> url = 'http://localhost:{}/'.format(tornado_layer.port)\n >>> f = urlopen(url)\n >>> f.read()\n b'[\"fake_file\"]'\n\n >>> f.close()\n >>> tornado_layer.tearDown()\n\n\n.. _`zope testrunner`: https://pypi.python.org/pypi/zope.testrunner", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mfussenegger/tornado-testing", "keywords": null, "license": null, "maintainer": null, "maintainer_email": null, "name": "tornado_testing", "package_url": "https://pypi.org/project/tornado_testing/", "platform": "any", "project_url": "https://pypi.org/project/tornado_testing/", "project_urls": { "Homepage": "https://github.com/mfussenegger/tornado-testing" }, "release_url": "https://pypi.org/project/tornado_testing/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "tornado testlayer for use with zope.testrunner", "version": "0.2.1" }, "last_serial": 1075983, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "01be70eee91c08ca37fb72290192825e", "sha256": "653834085c5bb42d9d16eed73ae3e30cc56e3b63da2527aa90aaf9a89272d9f6" }, "downloads": -1, "filename": "tornado_testing-0.1.0.tar.gz", "has_sig": false, "md5_digest": "01be70eee91c08ca37fb72290192825e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2057, "upload_time": "2014-04-29T20:46:14", "url": "https://files.pythonhosted.org/packages/fc/52/3411a9074a8c7ba4a53a2fb709a47f1609c719ea981441dd52b7ef387cbf/tornado_testing-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "91d7a348b4f10e6140b9020d02c539d8", "sha256": "b9705fa565fb19348a36c691b6df180abe84d4e92334e045270a3d5c071e6244" }, "downloads": -1, "filename": "tornado_testing-0.1.1.tar.gz", "has_sig": false, "md5_digest": "91d7a348b4f10e6140b9020d02c539d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2902, "upload_time": "2014-04-29T21:16:28", "url": "https://files.pythonhosted.org/packages/a7/fd/059f20995699ed4e0ff6720e1a04e37b907a5932c21a2b3c5943a3955a80/tornado_testing-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a67b78b8e461af0f4ca1d17ce3420397", "sha256": "f68fe2433744be60556883f2b6fc69994ddf578081d6dbb189104ce6e1408be3" }, "downloads": -1, "filename": "tornado_testing-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a67b78b8e461af0f4ca1d17ce3420397", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2911, "upload_time": "2014-04-29T21:34:58", "url": "https://files.pythonhosted.org/packages/24/eb/504f5bd0fcf2155e159a246aa7958a372675ab6a22f5c1c1ef29b83e53ab/tornado_testing-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "0c7ec75ebf92dd157890ed5b92a61ae8", "sha256": "bd7c76f0b797ec1ca7d5a95e90071465892938975688d14d731754d466456cbe" }, "downloads": -1, "filename": "tornado_testing-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0c7ec75ebf92dd157890ed5b92a61ae8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2916, "upload_time": "2014-04-29T21:36:09", "url": "https://files.pythonhosted.org/packages/71/b3/350ee4b741574cae80d3ef2eed79a9b44e04ce9b44a4706c47a1457bee42/tornado_testing-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0c7ec75ebf92dd157890ed5b92a61ae8", "sha256": "bd7c76f0b797ec1ca7d5a95e90071465892938975688d14d731754d466456cbe" }, "downloads": -1, "filename": "tornado_testing-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0c7ec75ebf92dd157890ed5b92a61ae8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2916, "upload_time": "2014-04-29T21:36:09", "url": "https://files.pythonhosted.org/packages/71/b3/350ee4b741574cae80d3ef2eed79a9b44e04ce9b44a4706c47a1457bee42/tornado_testing-0.2.1.tar.gz" } ] }