Simple module enabling Django app testing via $ python setup.py test
Project description
Django Setuptest
Simple module enabling Django app testing via $ python setup.py test.
Normally when you execute $ python setup.py test for Django related modules you’re almost certain to run into DJANGO_SETTINGS_MODULE environment variable issues, e.g.:
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
This module overcomes this by configuring the DJANGO_SETTINGS_MODULE environment variable before executing your test suite. As a bonus it also generates Coverage and PEP 8 reports as part of the test.
Installation
Add the following to the package’s setup.py file before the setup call:
from setuptools.command.test import test def run_tests(self): from setuptest.runtests import runtests return runtests(self) test.run_tests = run_tests setup( # ... )
Provide a test_suite argument to the setup call specifying the test suite, e.g.:
setup( # ... test_suite = "my_django_package.tests" )
Provide a tests_require argument to the setup call including django-setuptest (required) and other package dependencies needed to execute the tests, e.g.:
setup( # ... tests_require=[ 'django-setuptest', ], )
Specify the test specific Django settings in a test_settings module in the same path as setup.py. These setting will be used when executing the tests, e.g. in test_settings.py:
DATABASE_ENGINE = 'sqlite3' INSTALLED_APPS = [ 'my_django_package', ]
Usage
Once correctly configured you can execute tests from the command line:
$ python setup.py test
This should output your test results as well as Coverage and PEP 8 reports. Note that an XML Coverage report is generated in a file called coverage.xml and a PEP8 report is generated in a file called pep8.txt
To mute the output of Coverage and PEP 8 reports provide the --quiet option:
$ python setup.py test --quiet
Sample Output
Example output of dummy test including Coverage and PEP 8 reports:
$ python setup.py test running test running egg_info writing django_dummy.egg-info/PKG-INFO writing top-level names to django_dummy.egg-info/top_level.txt writing dependency_links to django_dummy.egg-info/dependency_links.txt reading manifest file 'django_dummy.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'django_dummy.egg-info/SOURCES.txt' running build_ext Creating test database for alias 'default'... E ====================================================================== ERROR: test_something (dummy.tests.TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/shaun/tmp/django-dummy/dummy/tests/__init__.py", line 6, in test_something raise NotImplementedError('Test not implemented. Bad developer!') NotImplementedError: Test not implemented. Bad developer! ---------------------------------------------------------------------- Ran 1 test in 0.000s FAILED (errors=1) Destroying test database for alias 'default'... Coverage Report: Name Stmts Miss Cover Missing ----------------------------------------------- dummy/models 20 2 90% 22, 55 PEP8 Report: dummy/tests/__init__.py:6:1: W391 blank line at end of file $
Changelog
0.0.3 (2011-08-30)
More robust test settings import.
0.0.2 (2011-08-29)
Repeat Pep 8 errors.
0.0.1 (2011-08-29)
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for django_setuptest-0.0.3-py2.7.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e86afc5dfec8f0802bc166ce2c044318e5f3f28e18455efd39443d6dcdfe466 |
|
MD5 | 6fa4e423e65456bc0a0a831e15f55b22 |
|
BLAKE2b-256 | 760e432fad93b3936c36dd8585e70364e2fa70f9b0b5485e2ba05634fc0c98ec |
Hashes for django_setuptest-0.0.3-py2.6.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd1a408d97938d42cf2a4d838605553ff270c73782a12c73b93f33018953c77e |
|
MD5 | 23b227f79aa729d048bca9d801622f63 |
|
BLAKE2b-256 | d028c3fa53936b4de56e239f260f167b152c5238c7f1f9f0d8787e2852964477 |