{ "info": { "author": "Wes Winham", "author_email": "winhamwr@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Nose django helper plugin\n=========================\n\n.. image:: https://travis-ci.org/nosedjango/nosedjango.svg?branch=issue_30\n :target: https://travis-ci.org/nosedjango/nosedjango\n\nNosedjango brings the goodness of Nose and its plugin ecosystem to the world of\nDjango testing. Nose already has plugins for multiprocessing, coverage, tagging,\nprofiling, skipping, xunit plugin and most everything else you could need.\nNosedjango means you don't have to re-invent those wheels.\n\nPerhaps the most compelling case for using nosedjango is the performance gains\nseen when using the multiprocess module. (both runs on a core i7 laptop with a\nfixture-intensive test suite)\n\nNormal Django testrunner using sqlite ::\n\n $ ./manage.py test account\n ...\n Ran 65 tests in 507.930s\n\n OK\n\nNoseDjango with 8 processes ::\n\n $ nosetests --with-doctest --with-django --django-settings pstat.settings --with-django-testfs --with-django-sqlite --processes 8 pstat.account\n ...\n Ran 65 tests in 35.731s\n\nNose is ~14x faster.\n\nEasy Extensibility\n------------------\n\nIn addition, Nosedjango provides its own plugin system to hook in to the low\nlevel django-specific testing operations. Included with Nosedjango are plugins\nto do things like:\n\n* Create an isolated file storage location for testing.\n* Use an in-memory sqlite database.\n* Start a cherrpy server for integration-style tests.\n* Make it easier to test Celery.\n* Create and use a Sphinx search index for fulltext search tests.\n* Open an SSH tunnel for things like Selenium that might need outside\n resources.\n* Run Selenium2 functional tests in a headless virtual frame buffer.\n* Selectively switch out settings from the command line for different kinds\n of tests.\n\nThe plugin takes care of finding your applications settings.py file\nand creating/tearing down test database. It also has support for\nfixtures and it has experimental mechanism that wraps the tests in\ntransactions to speed up testing.\n\nThis plugin works with Django versions 1.2 and 1.3.\n\nBasic Usage\n-----------\n\nUnit tests can be run with following command::\n\n nosetests --with-django [nose-options]\n\nCommand line options\n~~~~~~~~~~~~~~~~~~~~\n\nIn addition to default nose command line options, nosedjango offers\nthe following options:\n\n--django-settings=MODULE Specify a custom Django settings `MODULE`.\n The specified `MODULE` needs to be found\n in ``sys.path``.\n\n--django-sqlite If set, use in-memory sqlite database for\n tests.\n\n--django-interactive Run tests in interactive mode (see\n `DjangoTestSuiteRunner documentation\n `_).\n Default: false.\n\nParallel Test Running Via Multiprocess\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAn easy win for Nosedjango out of the box is the ability to safely distribute\ntests across multiple processes, dramatically speeding up test runs on\nmulticore machines.\n\nIn the simplest case, the following will run your tests distributed across two\ncores using in-memory sqlite databases and separate file storage locations\nto minimize file collision conflicts::\n\n nosetests --with-django --with-django-sqlite --with-django-testfs --processes=2 \n\n.. Note::\n For very small test suites or test suites that don't use fixtures, the\n overhead from starting multiple processes can result in the full test\n run actually being *slower* with multiple processes compared to a single\n process.\n\n Complex test suites might require some adaptation to support parallel test\n running. If tests rely on things like hardcoded file paths or shared\n external resources, these will need to be made generic. Usually this is as\n easy as using a NamedTemporaryFile instead of a hardcoded path.\n\n\nInstallation\n------------\n\nInstallation via Pip is straightforward::\n\n $ pip install -e git+git://github.com/nosedjango/nosedjango.git#egg=nosedjango\n\n\nRunning the Nosedjango Test Suite\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAn easy way to try out your nosedjango installation is to try the test suite\nyourself::\n\n $ python setup.py nosetests\n\n\nDeviations From the Django Testrunner\n-------------------------------------\n\nNosedjango makes a few decisions differently than Django's normal testrunner\nand depending on your project, you might need to make adjustments for all of\nyour tests to run properly.\n\n\nDoctests Skipped by Default\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBy default, Nose only runs doctests if the ``--with-doctest`` option is\nincluded. Nosedjango respects this default rather than the Django default, so\nif you'd like to run your doctests, add ``--with-doctest`` to your options.\n\nTest Discovery\n~~~~~~~~~~~~~~\n\nNosedjango relies on Nose's test discovery method, which means that Nose might\nfind some tests that weren't being run by Django.\n\nDatabase Schema Isn't Re-created Every Test\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFor performance reasons, the database schema is only created once.\n\nFixture Loading\n~~~~~~~~~~~~~~~\n\nNose supports module-level fixtures, and so does Nosedjango. This means that if\nyou have a ``fixtures`` variable floating around in a test module, Nosedjango\nwill load it.\n\nFor example::\n\n fixtures = ['cheese.json', 'cakes']\n\n def test_cheesecake():\n # do something...\n\nCache is Cleared Between Tests\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe cache is cleared between each test run, as is the case with newer versions\nof Django. If you have tests that depend on other tests modifying the cache\n(*tsk tsk tsk*), then you will need to modify those tests for them to work\nunder Nosedjango.\n\nModification of `TestCase.fixtures` ignored\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you relied on modifying the `fixtures` property of a `TestCase` either via\nthe `__init__` or during an actual test, then you're a Bad Person. Also, NoseDjango\nwon't respect this change and instead it will respect the value of `fixtures` that\nwas assigned at class definition time.\n\nPlugin System\n-------------\n\nNosedjango's plugin system is heavily inspired by Nose's own system and provides\nloads of hooks in to the Django test-running process. Nosedjango plugins are\nactually just Nose plugins themselves that have access to extra hooks. To see\navailable hooks, check out ``nosedjango.plugins.base_plugin.Plugin``. Plugins\nshould extend that class.\n\nBetter documentation is hopefully forthcoming, but reading the source for the\nincluded ``file_storage_plugin`` and ``sqlite_plugin`` should provide clues\nalong with Nose's documentation on writing plugins. One example of solving\nvery project-specific testing needs is the NoseDjango plugin located at\nhttps://github.com/jlward/nosedjango-pstat\n\nKnown Issues\n------------\n\n* Multiprocess testing only currently works with in-memory sqlite. This is very\n fixable though and pull requests are welcome.\n* Nosedjango is broken with Nose 1.0 and higher due to changes in Nose's\n Multiprocessing module. This is currently being investigated.\n\nAuthors\n-------\n\nNoseDjango is currently maintained by Wes Winham .\nIt was previously maintained by Jyrki Pulliainen\n.\n\nOriginal plugin courtesy of Victor Ng who\nrewrote Jason Pellerin's original nose-django plugin.\n\nFor all contributors, see *AUTHORS* file.\n\nContributing\n------------\n\nThis project and it's issues are currently hosted in github_. If you\nfind a bug or have a feature request, use `github's issue tracker`_\nfor that.\n\n.. _github: http://github.com/nosedjango/nosedjango/\n.. _github's issue tracker: http://github.com/nosedjango/nosedjango/issues\n\nPatches are welcome :)\n\nLicense\n-------\n\nThis software is licensed with GNU LESSER GENERAL PUBLIC LICENSE\nversion 3 or (at your option) any later version. See *COPYING* for\nmore details.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/nosedjango/nosedjango", "keywords": "", "license": "GNU LGPL", "maintainer": "", "maintainer_email": "", "name": "NoseDjango", "package_url": "https://pypi.org/project/NoseDjango/", "platform": "", "project_url": "https://pypi.org/project/NoseDjango/", "project_urls": { "Homepage": "http://github.com/nosedjango/nosedjango" }, "release_url": "https://pypi.org/project/NoseDjango/1.1.0/", "requires_dist": null, "requires_python": "", "summary": " nosedjango cranks up the awesome for your Django project by giving you all the testing goodness of the Nose ecosystem. Use multiprocess, xunit, coverage, etc or even write your own plugin that hooks in to the NoseDjango plugin system (a plugin with a plugin system!) ", "version": "1.1.0" }, "last_serial": 4891486, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "8648fb617f8691fcabd090ed76f6840b", "sha256": "4f08149e7120c6ee754720c686c5df5f398cdfbf9d3ba290179de86b626c409e" }, "downloads": -1, "filename": "NoseDjango-0.5-py2.5.egg", "has_sig": true, "md5_digest": "8648fb617f8691fcabd090ed76f6840b", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 5669, "upload_time": "2007-12-18T04:07:19", "url": "https://files.pythonhosted.org/packages/be/42/009c5f0f8b8c68d7508dda6dcf87ae440ad8f94b5ce74de20b901cb6b6bc/NoseDjango-0.5-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "fd1054af983419d2254a49ec53b5520f", "sha256": "851838725c9811ea1210965202c09bb92c6924dc94e9ea0e8f362d75b667cd98" }, "downloads": -1, "filename": "NoseDjango-0.5.tar.gz", "has_sig": true, "md5_digest": "fd1054af983419d2254a49ec53b5520f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5055, "upload_time": "2007-12-18T04:07:13", "url": "https://files.pythonhosted.org/packages/36/26/7f4d625cac557926a6a9eb3d271593de9f87dadf164a26a25ee4c30941bf/NoseDjango-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "b957c94706cb5b152a4bccdcb4daafb7", "sha256": "799cb0c31f619ddc4d33b5b104357cfb0c326f07c5167279d0c9e6a8639ed337" }, "downloads": -1, "filename": "NoseDjango-0.6-py2.5.egg", "has_sig": true, "md5_digest": "b957c94706cb5b152a4bccdcb4daafb7", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 6269, "upload_time": "2008-08-29T04:39:36", "url": "https://files.pythonhosted.org/packages/a5/8d/1fb16ad7bc183d3166a4522467998ff4bd30760e170c1297d67602e25783/NoseDjango-0.6-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "07907585e07bd27f3c6334dbb196a4d3", "sha256": "eaf0307e8e4099514ef1938976a0234aa327bfc28f51e754d28f6457ddae24cb" }, "downloads": -1, "filename": "NoseDjango-0.6.tar.gz", "has_sig": false, "md5_digest": "07907585e07bd27f3c6334dbb196a4d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3293, "upload_time": "2008-08-29T04:39:24", "url": "https://files.pythonhosted.org/packages/aa/1d/5a336aaea94d8fb1c2f6915d0e6e77c3fc204dcb9cc058590c2e9d72d91c/NoseDjango-0.6.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "5cfa58348b8180747da37fee1045c6c6", "sha256": "51b93e98d2b0494f6a5f154d14b87174ff424a53c54b721a0ea7d10d95caa7fe" }, "downloads": -1, "filename": "NoseDjango-0.8.0.tar.gz", "has_sig": true, "md5_digest": "5cfa58348b8180747da37fee1045c6c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4095, "upload_time": "2010-08-19T07:04:35", "url": "https://files.pythonhosted.org/packages/38/a0/a8cda2f2af74899ab21ceb426bcd69fc68d0b4fd0b77f1963f758c319847/NoseDjango-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "f3d30a025c4a83d840b787a474f3adae", "sha256": "d336faec6bb8c9325296cd5c2baa323ec21605f677d2329217c1e94bdf69492a" }, "downloads": -1, "filename": "NoseDjango-0.8.1.tar.gz", "has_sig": true, "md5_digest": "f3d30a025c4a83d840b787a474f3adae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4178, "upload_time": "2010-08-20T00:09:44", "url": "https://files.pythonhosted.org/packages/38/83/ee1843ba0627c7091a9db17f828a55401635f551e4641fedc5690dfc3ec6/NoseDjango-0.8.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "cb8f49459a35cf55087db6e56a8f2918", "sha256": "fff63acc4f1f11f3c03d9a0c0c4860db04ea6c7767e8c3cbd015fd6bb96a87c0" }, "downloads": -1, "filename": "nosedjango-1.0.0.tar.gz", "has_sig": false, "md5_digest": "cb8f49459a35cf55087db6e56a8f2918", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35698, "upload_time": "2015-02-05T20:19:51", "url": "https://files.pythonhosted.org/packages/89/e1/b80db829d715ea0417e20726260469e2e7b1e1e73dfdcfa77c39c4db8e1a/nosedjango-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b226d38f423f00da67dea758c87d82ca", "sha256": "3cefeac88718a6da9d60bbea9d2a4ff956c7ff9dd833eec3909d523362436852" }, "downloads": -1, "filename": "nosedjango-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b226d38f423f00da67dea758c87d82ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33860, "upload_time": "2015-11-19T21:37:57", "url": "https://files.pythonhosted.org/packages/53/9d/7174d3c5a94f0594f812dd11b6ad8c911eddb8b3eb67279b97f3cd48ab6a/nosedjango-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "c7634e3f86ab363313705d881190cfae", "sha256": "8e138b0a89e09c4af917cee427b645c4e439fd2be248e009653b93c5d5628bf9" }, "downloads": -1, "filename": "nosedjango-1.0.10.tar.gz", "has_sig": false, "md5_digest": "c7634e3f86ab363313705d881190cfae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38075, "upload_time": "2016-02-01T23:27:58", "url": "https://files.pythonhosted.org/packages/80/77/4145ee39e5345fdc42f273e6015a720b4af559a6365174332111619df2c6/nosedjango-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "8336f577913f2045503f650b02d2a039", "sha256": "5d0d57a236fdd9823f631a0d2f1eac663ce6f8048901b7ce17d8ba6d5cdbf692" }, "downloads": -1, "filename": "nosedjango-1.0.11.tar.gz", "has_sig": false, "md5_digest": "8336f577913f2045503f650b02d2a039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38281, "upload_time": "2016-02-03T22:13:38", "url": "https://files.pythonhosted.org/packages/aa/21/99a6d12e67d38626803a48fdea2f027e9e315a0c0aed7addaf80e9d56d48/nosedjango-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "723db37de68df66b4cbef1037f781d0a", "sha256": "6384e1343a13639ee7553726b2ea73cad20fa08146fb23119bea998306b0c493" }, "downloads": -1, "filename": "nosedjango-1.0.12.tar.gz", "has_sig": false, "md5_digest": "723db37de68df66b4cbef1037f781d0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33010, "upload_time": "2016-02-09T20:50:19", "url": "https://files.pythonhosted.org/packages/1a/17/d1a4c45c2ad8adf86a90b8a794b29377adc1b7dc0ce91652bff579ebc3df/nosedjango-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "557349e1c4e030f405bd5c16a3b52cef", "sha256": "0fe5a60422125fe2252f642e8192b6245e1d292b6fce67b305fafe1722f47750" }, "downloads": -1, "filename": "nosedjango-1.0.13.tar.gz", "has_sig": false, "md5_digest": "557349e1c4e030f405bd5c16a3b52cef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37853, "upload_time": "2016-04-06T16:27:38", "url": "https://files.pythonhosted.org/packages/f6/92/5fa716f83162ee4b62f7c55275d3402600b0b8201abf98a9ee2e616309ca/nosedjango-1.0.13.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "a5e59030396a7b7cc340a69ba4c7646a", "sha256": "8353fcb0dda4763864cc7ee80baa6a00b249f029e444886ce02cc26c99645a92" }, "downloads": -1, "filename": "nosedjango-1.0.2.tar.gz", "has_sig": false, "md5_digest": "a5e59030396a7b7cc340a69ba4c7646a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32554, "upload_time": "2016-01-04T19:52:30", "url": "https://files.pythonhosted.org/packages/79/16/284229da818d54ffb6f6f8bfef4965015820c7ede62084ea72422552e79c/nosedjango-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "f7c653743d3b17f19857c762cc3900cf", "sha256": "8482201b2408d6e6d09a46acf03b792d1a8a2fe147126789d7f33ad5090dc8ce" }, "downloads": -1, "filename": "nosedjango-1.0.3.tar.gz", "has_sig": false, "md5_digest": "f7c653743d3b17f19857c762cc3900cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32729, "upload_time": "2016-01-06T17:56:03", "url": "https://files.pythonhosted.org/packages/8a/9d/f216ed44f6a35c353acbf862ea6820fb900da2225a4fda7291e18c862ed2/nosedjango-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "d24e0895cefd4614008a957712fb7057", "sha256": "7f1bbd41b8e4fb29c6fba0ee65b8d6283a6a4e99a67d82b08aee45981a36395e" }, "downloads": -1, "filename": "nosedjango-1.0.4.tar.gz", "has_sig": false, "md5_digest": "d24e0895cefd4614008a957712fb7057", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33303, "upload_time": "2016-01-07T21:55:05", "url": "https://files.pythonhosted.org/packages/04/d2/76cc638736b697fdcc01834cc025488383726c69516b25562e6ddf7c469f/nosedjango-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "7494ed5f160d3fb7b2f814ccb5c980de", "sha256": "f0eb72231a784efb086ced69f5832626d5c9367f95ce71ecc8c78da321e1919d" }, "downloads": -1, "filename": "nosedjango-1.0.5.tar.gz", "has_sig": false, "md5_digest": "7494ed5f160d3fb7b2f814ccb5c980de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33499, "upload_time": "2016-01-14T20:25:25", "url": "https://files.pythonhosted.org/packages/c8/5b/9a1baa2f91a0de38a3b5d44c70ad153f546fcb19e8b3941b61120f7583ef/nosedjango-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "32f399a5666df1f690259aaba355add4", "sha256": "7dcd68260a35913cb264fc237943c29af8e7b029d6c18b348f0897b86224edcd" }, "downloads": -1, "filename": "nosedjango-1.0.6.tar.gz", "has_sig": false, "md5_digest": "32f399a5666df1f690259aaba355add4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36804, "upload_time": "2016-01-19T22:15:01", "url": "https://files.pythonhosted.org/packages/64/1a/dd61a38d415c1151a298306f53e015982abd1706bed2b44c7bd1baf03ee8/nosedjango-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "b93a7623ee5f9211865c1ddab2312b23", "sha256": "041d631fd5fcc838cf79b1144e52b9c0beb40ca75a9b85c09f97d9e28a98b95a" }, "downloads": -1, "filename": "nosedjango-1.0.7.tar.gz", "has_sig": false, "md5_digest": "b93a7623ee5f9211865c1ddab2312b23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37375, "upload_time": "2016-01-20T16:07:00", "url": "https://files.pythonhosted.org/packages/3c/7f/e7229937c8a070ac24714dcda4219ab9396444fb2a0c7241553ef317dfad/nosedjango-1.0.7.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "229ba7d6a16f1c951e18079c639c89de", "sha256": "f9e70d169509b553d4dba783b44dd3e17495d471401e6cdb5c5f3ee8bf3b90a7" }, "downloads": -1, "filename": "nosedjango-1.0.9.tar.gz", "has_sig": false, "md5_digest": "229ba7d6a16f1c951e18079c639c89de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37545, "upload_time": "2016-01-29T16:09:51", "url": "https://files.pythonhosted.org/packages/c4/c9/c930e98c1972b7abf69dc47cea0be585a543b6108daefa5025dc6ea055dd/nosedjango-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b648b17b6ea5dc1591a329809d9552ba", "sha256": "7837b890e11041c846a5d8f20478dd390f1ae958da3f5d6423f1197fcb60238f" }, "downloads": -1, "filename": "nosedjango-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b648b17b6ea5dc1591a329809d9552ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37365, "upload_time": "2017-09-27T16:10:43", "url": "https://files.pythonhosted.org/packages/cf/67/45d829477b91d14ccea7e825f85b048d94a75b9a930de763933a70ca93ca/nosedjango-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b648b17b6ea5dc1591a329809d9552ba", "sha256": "7837b890e11041c846a5d8f20478dd390f1ae958da3f5d6423f1197fcb60238f" }, "downloads": -1, "filename": "nosedjango-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b648b17b6ea5dc1591a329809d9552ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37365, "upload_time": "2017-09-27T16:10:43", "url": "https://files.pythonhosted.org/packages/cf/67/45d829477b91d14ccea7e825f85b048d94a75b9a930de763933a70ca93ca/nosedjango-1.1.0.tar.gz" } ] }