django-jasmine
Master:
Develop:
Pull requests and issues are welcome!
django-jasmine integrates the Jasmine Javascript testing framework with Django. Jasmine is a behavior-driven development framework for testing your JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
django-jasmine also integrates the jasmine-jquery plugin, that provides a set of custom matchers for jQuery framework and an API for handling HTML fixtures in your specs.
Installation
pip install django-jasmine
Add ‘django_jasmine’ to your settings.INSTALLED_APPS.
Add settings.JASMINE_TEST_DIRECTORY, containing the path to your javascript jasmine test files. Files.json should be in this directory and all test files should be in os.path.join(settings.JASMINE_TEST_DIRECTORY, ‘spec’) *
Makes sure you have properly defined a STATIC_URL.
Add all Javascript files (including jQuery, and any other libraries) to files.json
Add a urlconf to include(‘django_jasmine.urls’).
Visit the URL you’ve included in your urlconf to display Jasmine test results.
Add a corresponding tag from the Jasmine github repo to specify a version of Jasmine to test with. Otherwise the latest tag, currently v2.4.1, is loaded.
Jasmine is now loaded over cdn.rawgit.com. A very obvious error message will appear if Jasmine isn’t loaded correctly.
See the example_project directory for more information.
Template
If you wish to modify the jasmine index template for any reason (e.g. add a new jasmine reporter), you can create a jasmine/index.html template as follow:
{% extends "jasmine/base.html" %}
{% block jasmine_preload %}
{# If you need to do any setup before dependencies in files.json are loaded (like define app namespace) #}
{% endblock %}
{% block jasmine_extra %}
{# If you want to extend the default jasmineEnv config #}
{% endblock %}
{% block jasmine %}
{# If you wish to rewrite the whole html runner script #}
{% endblock %}
Read templates/jasmine/base.html for the default config
Fixtures
jasmine-jquery allowing to add fixtures, you can set them in os.path.join(settings.JASMINE_TEST_DIRECTORY, ‘fixtures’). Then in your spec:
jasmine.getFixtures().fixturesPath = "/jasmine/fixtures/";
loadFixtures("template.html")
Debug
If you encounter some errors that isn’t obvious to debug, you can add “django_jasmine” to your loggers.
Integration with ./manage.py tests
To do so, I recommend using EnvJasmine, and use Fabric to run EnvJasmine after running manage.py tests
Todo
Keep improving django tests
Add Growl/notifyd notifications
Add more settings for more flexibility i.e. make a symbolic constant for cdn url.
Thoroughly test fixtures and jasmine-jquery features.
Improve README.
Use a more specific pattern matcher for the version url.
Improve error message when Jasmine fails to load over cdn.
License
Copyright (c) 2010 Movity, Inc Licensed new-style BSD, also containing Jasmine, which is licensed MIT. See LICENSE file for more information.
Contributing
Please see the contributing file.
Metadata
Release files for django-jasmine 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-jasmine-0.5.1.tar.gz | 74.8 kB | Without provenance | Details for django-jasmine-0.5.1.tar.gz |
Release files / django-jasmine-0.5.1.tar.gz
| Download URL | django-jasmine-0.5.1.tar.gz |
|---|---|
| Size | 74.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
911a50c94c50416d0effc7e66cb96deaf26d0a113c28b0bc1f44e2ecf6f43cd5
|
|
BLAKE2b-256 checksum How to use checksums |
2ee44e6cc16f9895e4187d9174c4d65c8591377565a4814391e5f1f51bdfefe9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-jasmine 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.