{ "info": { "author": "Jeremy Bowman", "author_email": "jbowman@safaribooksonline.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.6", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Testing" ], "description": "django-nose-qunit README\n========================\n\nIntegrate QUnit JavaScript tests into a Django test suite via nose.\n\nInstallation\n------------\n\n1. ``pip install django-nose-qunit``.\n2. Add ``'django_nose_qunit'`` to your ``INSTALLED_APPS`` setting.\n3. Ensure that you're using nose as your test runner by using the following\n Django setting ::\n\n TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'\n\n4. Enable the nose plugin by adding it to the ``NOSE_PLUGINS`` Django setting::\n\n NOSE_PLUGINS = [\n 'django_nose_qunit.QUnitPlugin'\n ]\n\n and the ``NOSE_ARGS`` Django setting::\n\n NOSE_ARGS = [\n '--with-django-qunit',\n ]\n\n5. Add an entry to your URL configuration::\n\n from django_nose_qunit.urls import urlpatterns as qunit_urlpatterns\n urlpatterns += qunit_urlpatterns\n\n This adds new URLs of the form ``/qunit/*``, and they return a 404\n unless ``DEBUG`` is True or QUnit tests have been initialized as part of a\n test run.\n6. Configure Selenium as explained in the\n `sbo-selenium `_ README.\n7. Make sure ``MEDIA_URL`` is set to some non-empty string, like \"/media/\".\n If this is not done, the live test server can occasionally get confused and\n treat requests for a test page as requests for static files.\n\nCreating Unit Tests\n-------------------\n\nTests can be written in JavaScript using QUnit as normal; see the\n`QUnit documentation `_ for details. You need only create a\nJavaScript file, not the HTML page that will load it (that is provided by the\ntemplate at ``qunit/template.html``). If your tests depend on HTML fixtures in the\nqunit-fixture div, create those as HTML fragments in files which can be loaded\nas templates. External script dependencies should be files in the staticfiles\nload path. You should add ``QUnit.Django.start();`` before your test definitions\nand ``QUnit.Django.end();`` at the end of your test definitions; this allows the\ntests to start executing at an appropriate time depending on whether they're\nrunning in a browser, in a nose test run, or inside a require() block of an AMD\nloader like `RequireJS `_.\n\nTo make nose aware of your QUnit tests, create a subclass of\n``django_nose_qunit.QUnitTestCase`` in a file which would normally be searched by\nnose, for example ``my_app/test/qunit/test_case.py``. It can contain as little as\njust the ``test_file`` attribute (a path to a QUnit test script, relative to\n``STATIC_URL``). Any script dependencies for your test script should be given\nas paths relative to ``STATIC_URL`` in the ``dependencies`` attribute. Paths to\nHTML fixture templates are listed in the ``html_fixtures`` attribute.\n\nRunning Unit Tests\n------------------\nUse your normal test execution command (using\ndjango-admin.py or manage.py). Execution can be restricted to one or more\nspecified packages and/or classes as normal (\"myapp\", \"myapp.tests.qunit\",\n\"myapp.tests.qunit:MyTestCase\", etc.). There is currently no support for\nrunning only a single module or test within a QUnit test script; QUnit module\nand test names can be arbitrary strings, which makes it difficult for the nose\ncommand line parser to handle them.\n\nTo run the QUnit tests in a regular web browser, use the runserver management\ncommand with ``QUNIT_DYNAMIC_REGISTRY`` set to True (by default, it has the same\nvalue as ``DEBUG``). If ``DEBUG`` is False, you'll also need to use the ``--insecure``\nparameter to serve static files. You can then access a list of links to the\navailable QUnit tests at a URL like http://localhost:8000/qunit/. This can be\nuseful when first developing a test script and when troubleshooting failing\ntests.\n\nHow It Works\n------------\nQUnitTestCase is a subclass of Django's ``LiveServerTestCase``, which starts a\nDjango test server in the background on setup of the test class and stops it on\nteardown. django_nose_qunit includes a nose plugin which can accommodate tests\nwritten as simple wrappers for JavaScript test files. When nose searches for\ntests to run, the plugin tells it how to ask a browser via Selenium WebDriver\nto load each test script (without running the tests) in order to get\ninformation about the modules and tests it contains. Once these tests are\nenumerated, they are run like any other test case. The first execution of\na test from a QUnit test script runs all of the tests in the script, and the\nresults are stored. Each test case then reports success or failure based on\nthe reported results, with failures including any messages provided by QUnit.", "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/safarijv/django-qunit-ci", "keywords": null, "license": null, "maintainer": null, "maintainer_email": null, "name": "django-nose-qunit", "package_url": "https://pypi.org/project/django-nose-qunit/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-nose-qunit/", "project_urls": { "Homepage": "https://github.com/safarijv/django-qunit-ci" }, "release_url": "https://pypi.org/project/django-nose-qunit/1.6.1/", "requires_dist": [ "django-nose", "sbo-selenium (>=0.4.0)" ], "requires_python": null, "summary": "Integrate QUnit JavaScript tests into a Django test suite via nose", "version": "1.6.1" }, "last_serial": 2101365, "releases": { "1.4.10": [ { "comment_text": "", "digests": { "md5": "496a8db7265297e57c9b3181ca71a229", "sha256": "bdc82ab18d2a81c4b21f75c82fa73ac1e4c05fe0d84f958758b65e0df95a2024" }, "downloads": -1, "filename": "django-nose-qunit-1.4.10.tar.gz", "has_sig": false, "md5_digest": "496a8db7265297e57c9b3181ca71a229", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29306, "upload_time": "2013-08-14T08:14:16", "url": "https://files.pythonhosted.org/packages/4d/56/a6dfdea41183113950bcdd31f084073613befa9f21f49c667639bc84c77e/django-nose-qunit-1.4.10.tar.gz" } ], "1.4.9": [ { "comment_text": "", "digests": { "md5": "e171b1f53592e7a3ebfbadf82eb7bd55", "sha256": "15fc78ec485967f2a1ac91abbe15295a33ed807852c22b6a17d1c13e00a6bbae" }, "downloads": -1, "filename": "django-nose-qunit-1.4.9.tar.gz", "has_sig": false, "md5_digest": "e171b1f53592e7a3ebfbadf82eb7bd55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29323, "upload_time": "2013-08-14T08:09:31", "url": "https://files.pythonhosted.org/packages/22/dd/73345494037cbfc423b6cd6477471fd5af3b7fcc7a41f50029c0b52b76ea/django-nose-qunit-1.4.9.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "f3f962e45ae2f5122b83fbe4312183c6", "sha256": "7a2facb3a061e1f8bf588b93a0f32765b14fd5f30c178b001fe34a7f3780d1a9" }, "downloads": -1, "filename": "django-nose-qunit-1.5.2.tar.gz", "has_sig": false, "md5_digest": "f3f962e45ae2f5122b83fbe4312183c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30186, "upload_time": "2014-03-31T12:24:26", "url": "https://files.pythonhosted.org/packages/24/e0/8a95dde1dd8eace8cd3c6e26d13b13aedc1574e70b2318a551c6f1732d1e/django-nose-qunit-1.5.2.tar.gz" } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "b575085df3b99482931f16481623d0f7", "sha256": "17cd0c110d18e05323e5e4eee8cd988121c980c5664ac75e014c318e93edbffd" }, "downloads": -1, "filename": "django-nose-qunit-1.5.3.tar.gz", "has_sig": false, "md5_digest": "b575085df3b99482931f16481623d0f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29568, "upload_time": "2014-04-04T21:21:19", "url": "https://files.pythonhosted.org/packages/db/0c/e15f053cdf569a97412781b490dffced24585155d22a6ba796f66600dc20/django-nose-qunit-1.5.3.tar.gz" } ], "1.5.4": [ { "comment_text": "", "digests": { "md5": "7ed7e63a8ce9af245a36cc3eea84dda1", "sha256": "5c9c63d067dc78898f64552b713c6e98338e36fb45711c1bb8979bc41ce1f34a" }, "downloads": -1, "filename": "django-nose-qunit-1.5.4.tar.gz", "has_sig": false, "md5_digest": "7ed7e63a8ce9af245a36cc3eea84dda1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29638, "upload_time": "2014-04-19T16:02:20", "url": "https://files.pythonhosted.org/packages/12/2d/eb0ffc8b51efa969b55b670bc5ab0c1e32f3362fd83406fee68f1e0c654f/django-nose-qunit-1.5.4.tar.gz" } ], "1.5.5": [ { "comment_text": "", "digests": { "md5": "c339e462bce5702a7d7fc51d76aaea08", "sha256": "9f6aa442e006ef62931a1303eaae1f6abcf81ee2a68178a2ef57a994504f0661" }, "downloads": -1, "filename": "django-nose-qunit-1.5.5.tar.gz", "has_sig": false, "md5_digest": "c339e462bce5702a7d7fc51d76aaea08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29724, "upload_time": "2015-02-02T21:56:12", "url": "https://files.pythonhosted.org/packages/78/e6/a8728080ae7fe5a2b4de1df335ecd17b2c697443d432e7d4b6d9cf185206/django-nose-qunit-1.5.5.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "75e5c2866ebff8e6dec41ffff2720a9b", "sha256": "15ce57fe39fc9cbe36f7d6c755ee2850797be73d9fdd1d1eff84a6cdd0a04bbd" }, "downloads": -1, "filename": "django_nose_qunit-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "75e5c2866ebff8e6dec41ffff2720a9b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 48767, "upload_time": "2015-07-02T16:47:58", "url": "https://files.pythonhosted.org/packages/cc/98/6b3ad62f7dde559c6162258fa28e4e06a8383b4c448267e17b0477c294b3/django_nose_qunit-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "747c935354c29f50ca1c40281cb82843", "sha256": "440c87c6516e66bed6aaf6926be1cd1d0537c287b903e5361e695ac981874c63" }, "downloads": -1, "filename": "django-nose-qunit-1.6.0.tar.gz", "has_sig": false, "md5_digest": "747c935354c29f50ca1c40281cb82843", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42954, "upload_time": "2015-07-02T16:47:54", "url": "https://files.pythonhosted.org/packages/33/36/e9c70fce01e4807afead4ea8d6af7abb7e79551a29b298433b8d79d506d7/django-nose-qunit-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "0df264aea492efaeb25e6cd4a9fb9c04", "sha256": "ae8586d92f4138fd7d61dda58af0a5e13f286d4ce0f2fc65eae7b49d64b82618" }, "downloads": -1, "filename": "django_nose_qunit-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0df264aea492efaeb25e6cd4a9fb9c04", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49932, "upload_time": "2016-05-05T19:19:26", "url": "https://files.pythonhosted.org/packages/28/0c/83989ed40061e1cc4190ce3403887eb36ae0d1d4ae4a847bb0afe3e45308/django_nose_qunit-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97c8da637b0ea02d77c80ac3f052b29d", "sha256": "a5442c11eae4d292ce3ae07769c9cf8840fe034de72b942246acc4c0213f65cd" }, "downloads": -1, "filename": "django-nose-qunit-1.6.1.tar.gz", "has_sig": false, "md5_digest": "97c8da637b0ea02d77c80ac3f052b29d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44431, "upload_time": "2016-05-05T19:19:32", "url": "https://files.pythonhosted.org/packages/25/a9/072577a11d1d4e067b6935ae9577c33835cb55bcf4530f3cce0fbaae2a9d/django-nose-qunit-1.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0df264aea492efaeb25e6cd4a9fb9c04", "sha256": "ae8586d92f4138fd7d61dda58af0a5e13f286d4ce0f2fc65eae7b49d64b82618" }, "downloads": -1, "filename": "django_nose_qunit-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0df264aea492efaeb25e6cd4a9fb9c04", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49932, "upload_time": "2016-05-05T19:19:26", "url": "https://files.pythonhosted.org/packages/28/0c/83989ed40061e1cc4190ce3403887eb36ae0d1d4ae4a847bb0afe3e45308/django_nose_qunit-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97c8da637b0ea02d77c80ac3f052b29d", "sha256": "a5442c11eae4d292ce3ae07769c9cf8840fe034de72b942246acc4c0213f65cd" }, "downloads": -1, "filename": "django-nose-qunit-1.6.1.tar.gz", "has_sig": false, "md5_digest": "97c8da637b0ea02d77c80ac3f052b29d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44431, "upload_time": "2016-05-05T19:19:32", "url": "https://files.pythonhosted.org/packages/25/a9/072577a11d1d4e067b6935ae9577c33835cb55bcf4530f3cce0fbaae2a9d/django-nose-qunit-1.6.1.tar.gz" } ] }