{ "info": { "author": "Carl Meyer, Jannis Leidel", "author_email": "carl@dirtcircle.com, jannis@leidel.info", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3" ], "description": "django-discover-runner\n======================\n\n.. note::\n\n This runner has been added to Django 1.6 as the default test runner.\n If you use Django 1.6 or above you don't need this app.\n\nAn alternative Django ``TEST_RUNNER`` which uses the unittest2_ test discovery\nfrom a base path specified in the settings, or any other module or package\nspecified to the ``test`` management command -- including app tests.\n\nIf you just run ``./manage.py test``, it'll discover and run all tests\nunderneath the current working directory. E.g. if you run\n``./manage.py test full.dotted.path.to.test_module``, it'll run the tests in\nthat module (you can also pass multiple modules). If you give it a single\ndotted path to a package (like a Django app) like ``./manage.py test myapp``\nand that package does not itself directly contain any tests, it'll do\ntest discovery in all submodules of that package.\n\n.. note::\n\n This code uses the default unittest2_ test discovery behavior, which\n only searches for tests in files named ``test*.py``. To override this\n see the ``TEST_DISCOVER_PATTERN`` setting or use the ``--pattern``\n option.\n\nWhy?\n----\n\nDjango's own test discovery is very much tied to the directory structure\nof Django apps, partly due to historic reasons (the unittest library\ndidn't have its own discovery for a long time) and prevents Django app\nauthors from being good Python citizens. django-discover-runner uses the\nofficial test discovery feature of the new unittest2_ library which is\nincluded in Django.\n\nBy default there is no way to put project specific tests in a separate\nfolder outside the Python package of the Django project, which is a great\nway to organize your code, separating the tests and non-test code.\ndjango-discover-runner helps you clean up your project tests.\n\nThere is also no way to specify fully dotted import paths to test\nmodules, functions, class or methods to the ``test`` management command\nbut only Django's odd standard ``.``.\ndjango-discover-runner allows you to specify any type of label to Django's\ntest management command.\n\nBy default Django's test runner will execute the tests of Django's own\ncontrib apps, which doesn't make sense if you just want to run your\nown app's or project's tests. django-discover-runner fixes this by allowing\nyou to specify which tests to run and organize your test code outside the\nreach of the Django test runner.\n\nMore reasons can be found in Carl Meyer's excellent talk about\n`Testing and Django`_ (slides_).\n\n.. _`Testing and Django`: http://pyvideo.org/video/699/testing-and-django\n.. _slides: http://carljm.github.com/django-testing-slides/\n\nInstallation\n------------\n\nInstall it with your favorite installer, e.g.::\n\n pip install -U django-discover-runner\n\ndjango-discover-runner requires at least Django 1.4 and also works on 1.5.x.\nStarting in Django 1.6 the discover runner is a built-in.\n\nSetup\n-----\n\n- ``TEST_RUNNER`` (required) needs to point to the ``DiscoverRunner`` class\n to enable it::\n\n TEST_RUNNER = 'discover_runner.DiscoverRunner'\n\n- Add ``'discover_runner'`` to your ``INSTALLED_APPS`` setting to enable the\n ability to override the discovery settings below when using the ``test``\n management command.\n\n- ``TEST_DISCOVER_TOP_LEVEL`` (optional) should be the directory containing\n your top-level package(s); in other words, the directory that should be on\n ``sys.path`` for your code to import. This is for example the directory\n containing ``manage.py`` in the new Django 1.4 project layout.\n The management command option is called ``--top-level``.\n\n- ``TEST_DISCOVER_PATTERN`` (optional) is the pattern to use when discovering\n tests and defaults to the unittest2_ standard ``test*.py``. The management\n command option is called ``--pattern``.\n\nExamples\n--------\n\nDjango app\n^^^^^^^^^^\n\nTo test a reusable Django app it's recommended to add a ``test_settings.py``\nfile to your app package to easily run the app tests with the ``test``\nmanagement command. Simply set the ``TEST_RUNNER`` setting to\n``'discover_runner.DiscoverRunner'``, configure the other settings necessary\nto run your tests and call the ``test`` management command with the name of\nthe app package, e.g.:: \n\n django-admin.py test --settings=myapp.test_settings myapp\n\nDjango project\n^^^^^^^^^^^^^^\n\nIf you want to test a project and want to store the project's tests outside\nthe project main package (recommended), you can simply follow the app\ninstructions above, applying it to the \"project\" package, but set a few\nadditional settings to tell the test runner to find the tests::\n\n from os import path\n TEST_DISCOVER_TOP_LEVEL = path.dirname(path.dirname(__file__))\n\nThis would find all the tests within a top-level \"tests\" package. Running the\ntests is as easy as calling::\n\n django-admin.py test --settings=mysite.test_settings tests\n\nAlternatively you can specify the ``--top-level-directory`` management\ncommand option.\n\nMultiple Django versions\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nIn case you want to test your app on older Django versions as well as\nDjango >= 1.6 you can simply conditionally configure the test runner in your\ntest settings, e.g.::\n\n import django\n\n if django.VERSION[:2] < (1, 6):\n TEST_RUNNER = 'discover_runner.DiscoverRunner'\n\nChangelog\n---------\n\n1.0 06/15/2013\n^^^^^^^^^^^^^^\n\n* **GOOD NEWS!** This runner was added to Django 1.6 as the new default!\n This version backports that runner for Django 1.4.x and 1.5.x.\n\n* Removed ``TEST_DISCOVER_ROOT`` setting in favor of unittest2's own way to\n figure out the root.\n\n* Dropped support for Django 1.3.x.\n\n0.4 04/12/2013\n^^^^^^^^^^^^^^\n\n* Added ability to override the discover settings with a custom test management\n command.\n\n0.3 01/28/2013\n^^^^^^^^^^^^^^\n\n* Fixed setup.py to work on Python 3. This should make this app compatible\n to Python 3.\n\n0.2.2 09/04/2012\n^^^^^^^^^^^^^^^^\n\n* Stopped setting the top level variable in the case of using a module path\n as the test label as it made the wrong assumption that the parent directory\n *is* the top level.\n\n0.2.1 08/20/2012\n^^^^^^^^^^^^^^^^\n\n* Fixed a rather esoteric bug with testing test case class methods\n that was caused by a wrong import and the way Django wraps itself\n around the unittest2 module (if availale) or unittest on Python >= 2.7.\n\n0.2 05/26/2012\n^^^^^^^^^^^^^^\n\n* Added ability to use an optionally installed unittest2 library\n for Django projects using Django < 1.3 (which added unittest2 to the\n ``django.utils.unittest`` package).\n\n0.1.1 05/23/2012\n^^^^^^^^^^^^^^^^\n\n* Fixed a bug that prevented the project based feature to work correctly.\n\n0.1 05/20/2012\n^^^^^^^^^^^^^^\n\n* Initial release with support for Django >= 1.3.\n\nThanks\n------\n\nThis test runner is a humble rip-off of Carl Meyer's ``DiscoveryRunner``\nwhich he published as a gist_ a while ago. All praise should be directed at\nhim. Thanks, Carl!\n\nThis was also very much related to ticket `#17365`_ which eventually led\nto the replacement of the default test runner in Django. Thanks **again**,\nCarl!\n\n.. _unittest2: http://pypi.python.org/pypi/unittest2\n.. _gist: https://gist.github.com/1450104\n.. _`#17365`: https://code.djangoproject.com/ticket/17365", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jezdez/django-discover-runner", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-discover-runner", "package_url": "https://pypi.org/project/django-discover-runner/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-discover-runner/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/jezdez/django-discover-runner" }, "release_url": "https://pypi.org/project/django-discover-runner/1.0/", "requires_dist": null, "requires_python": null, "summary": "A Django test runner based on unittest2's test discovery.", "version": "1.0" }, "last_serial": 862854, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ef0bb6c1d51ca0403bac4b59036e08b3", "sha256": "0d28dcf75872c51395223d5bfffb99b492dc59e0e11264b01806852de5547b48" }, "downloads": -1, "filename": "django-discover-runner-0.1.tar.gz", "has_sig": true, "md5_digest": "ef0bb6c1d51ca0403bac4b59036e08b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3542, "upload_time": "2012-05-20T15:04:49", "url": "https://files.pythonhosted.org/packages/11/5b/f756e4ffc6d231c0fc972914b07f6af221b1980090d3a3fe0e7eb37e1958/django-discover-runner-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9b9ab3914e603115fa9644f3e22dfbce", "sha256": "3cc3cc761d9c235b01792ad3cd8df2fee25c0af8da0bf571052f02e7806b10bd" }, "downloads": -1, "filename": "django-discover-runner-0.1.1.tar.gz", "has_sig": true, "md5_digest": "9b9ab3914e603115fa9644f3e22dfbce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4523, "upload_time": "2012-05-23T11:44:54", "url": "https://files.pythonhosted.org/packages/bd/00/164646b72c751c46401a51751b9f5be3f405927d0f04a95a21e8fc1cc20a/django-discover-runner-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ba70c8f43f0d71f3cf4c6389238652f6", "sha256": "44d8d8a7668884689a7e0baeed9bd29de7dccb3d6750eaa0b038763b06d687bb" }, "downloads": -1, "filename": "django-discover-runner-0.2.tar.gz", "has_sig": true, "md5_digest": "ba70c8f43f0d71f3cf4c6389238652f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4944, "upload_time": "2012-05-26T20:52:37", "url": "https://files.pythonhosted.org/packages/db/d4/e2257b920d4fd5a14acec6c2dea4a095de6ff0277a13213efe7194dc0617/django-discover-runner-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1516a79ceb2ba71e12025d91d79ba979", "sha256": "64f4763ccd8b8e5e4c56af5fc96e2cf494780cf18caf93be17348f9502360950" }, "downloads": -1, "filename": "django-discover-runner-0.2.1.tar.gz", "has_sig": true, "md5_digest": "1516a79ceb2ba71e12025d91d79ba979", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5069, "upload_time": "2012-08-20T16:12:02", "url": "https://files.pythonhosted.org/packages/2a/5f/4712063a2bde413abd0776b76c8d09a3b750ee6b019e76f657a44edd4502/django-discover-runner-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "42a752db6d5f75843aa6e14ea46b4ce6", "sha256": "8a40dcbf1ec10ceab3e79c7bcc3319dcc30ca4092f439401112b795db27300ab" }, "downloads": -1, "filename": "django-discover-runner-0.2.2.tar.gz", "has_sig": true, "md5_digest": "42a752db6d5f75843aa6e14ea46b4ce6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5143, "upload_time": "2012-09-04T13:58:24", "url": "https://files.pythonhosted.org/packages/c4/9e/5940213ef89d1d0eb4a05d7bcf61e6f1215b95e0c2ba5a209f68e9457262/django-discover-runner-0.2.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "d76d6a683c833ff70d0fc068a0539804", "sha256": "1241aab1af00df14a892af7ff680a270f4991254790e6af8880b2d957a37b1ae" }, "downloads": -1, "filename": "django-discover-runner-0.3.tar.gz", "has_sig": true, "md5_digest": "d76d6a683c833ff70d0fc068a0539804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5258, "upload_time": "2013-01-28T17:28:04", "url": "https://files.pythonhosted.org/packages/bf/95/6b1430f4d85260563806d1a747d2d9c6300743ae1267850dfe65e73def79/django-discover-runner-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "33aa397f86c286dfdc9227d2af70a632", "sha256": "c5da034ba42b4c6d1f8c5f3379b20ed8801f37eedd62c84a1547f5bb6e874f56" }, "downloads": -1, "filename": "django_discover_runner-0.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "33aa397f86c286dfdc9227d2af70a632", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6899, "upload_time": "2013-04-12T16:51:00", "url": "https://files.pythonhosted.org/packages/32/5b/49e9917736d33e3f8b8fee91aaf46249def0f098ebb520a19b4c2a01da7c/django_discover_runner-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b27633d500b2981602a18082cc927891", "sha256": "c802a9f19ee9cf55f478c3b664ee6f5ea8973b58248d24aa8c9e2dc65b9fa885" }, "downloads": -1, "filename": "django-discover-runner-0.4.tar.gz", "has_sig": true, "md5_digest": "b27633d500b2981602a18082cc927891", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6764, "upload_time": "2013-04-12T16:50:55", "url": "https://files.pythonhosted.org/packages/85/e7/a614859555d6ab951c0698610ed3376a7779bacdcdfacd44ac6e1347bf2c/django-discover-runner-0.4.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "b5fd6ed70d21e52fa001d20b50c29fba", "sha256": "e05b6da06310ecc857b8950007f45b8968dd5f0b8b718a1095cf466c705fd807" }, "downloads": -1, "filename": "django_discover_runner-1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b5fd6ed70d21e52fa001d20b50c29fba", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12067, "upload_time": "2013-09-11T15:36:05", "url": "https://files.pythonhosted.org/packages/73/2e/24b60ba1cb4898aa63c06fa40ddb444907f6f071795c217bfba499a350c7/django_discover_runner-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23d377cdcc5f1c2e1bcc5b508e6da4a7", "sha256": "0ba91fe722c256bcbfdeb36fac7eac0f27e5bfda55d98c4c1cf9ab62b5b084fe" }, "downloads": -1, "filename": "django-discover-runner-1.0.tar.gz", "has_sig": true, "md5_digest": "23d377cdcc5f1c2e1bcc5b508e6da4a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9190, "upload_time": "2013-06-15T13:07:40", "url": "https://files.pythonhosted.org/packages/d3/60/5ffffcfb2306afd1f67cb7fb820eba66033a2cb4aceda131d8f9c47ff2af/django-discover-runner-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b5fd6ed70d21e52fa001d20b50c29fba", "sha256": "e05b6da06310ecc857b8950007f45b8968dd5f0b8b718a1095cf466c705fd807" }, "downloads": -1, "filename": "django_discover_runner-1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b5fd6ed70d21e52fa001d20b50c29fba", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12067, "upload_time": "2013-09-11T15:36:05", "url": "https://files.pythonhosted.org/packages/73/2e/24b60ba1cb4898aa63c06fa40ddb444907f6f071795c217bfba499a350c7/django_discover_runner-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23d377cdcc5f1c2e1bcc5b508e6da4a7", "sha256": "0ba91fe722c256bcbfdeb36fac7eac0f27e5bfda55d98c4c1cf9ab62b5b084fe" }, "downloads": -1, "filename": "django-discover-runner-1.0.tar.gz", "has_sig": true, "md5_digest": "23d377cdcc5f1c2e1bcc5b508e6da4a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9190, "upload_time": "2013-06-15T13:07:40", "url": "https://files.pythonhosted.org/packages/d3/60/5ffffcfb2306afd1f67cb7fb820eba66033a2cb4aceda131d8f9c47ff2af/django-discover-runner-1.0.tar.gz" } ] }