Skip to main content

A plugin pair for nose2 that runs your django (>=1.4) tests through the nose2 command and also supports django-configurations settings management. It lets django initialise the test environment and setup the order of the test suite, but nose2/unittest2 handles the test discovery and execution.

There is another project called django-nose which is authored by one of the nose2 devs. It uses the standard django approach of setting an alternative test runner and running via manage.py. I was interested with the move to shift setup.py configuration into setup.cfg and wanted to try that pattern for running tests rather that wrapping configuration into a custom test runner. Modern django has refactored the way a project is initialised which means there is less dependency on using manage.py and django-admin.py as the only possible entry points into your django project.

Installation

$ pip install nose2django

Create a nose2.cfg file in your project’s root directory (where manage.py is) and register the plugins in the correct order:

[unittest]
plugins = nose2django.config
        nose2django.nose2django

[django-config]
always-on = True

# optional settings
settings = yourproject.settings
configuration = YourTestConfiguration

[django-runner]
always-on = True

You can optionally set the settings and configuration to a django settings module and a django-configurations configuration. It takes precedence over any existing environment.

Usage

As per nose2, optionally with either of the django-runner options.

$ nose2 --settings=example.settings.test --configuration=TestSettings

Patterns

For django app test driven development of apps you want only as much django settings as required. Create a tests folder in your top level directory (avoid using the name tests - use something like test_yourapp to avoid name clashes), and put a minimal settings file in there and an __init__.py file to make it importable. Something like:

    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3' }
}

    INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'yourapp',
)
    ROOT_URLCONF='yourapp.urls', # if you have urls
    SECRET_KEY = '1234'

Acknowledgements

nose2django re-uses parts of the existing django test runner code as licensed by django.

Changelog

v0.1.2 (2013-4-13)

  • Add South compatibility.

v0.1.1 (2013-4-6)

  • Fix issue with django logging setup when nose -v.

v0.1 (2013-03-29)

  • Initial public (correctly packaged) release. Thanks tox.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nose2django-0.1.2.tar.gz (4.8 kB view details)

Uploaded Source

File details

Details for the file nose2django-0.1.2.tar.gz.

File metadata

  • Download URL: nose2django-0.1.2.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nose2django-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2bef1861830459d48e37338f7a404b684934baf4235fb1b81cb8c39c62adda3a
MD5 928ac7e26082d4c4bdfd7b0d1342af60
BLAKE2b-256 97859de984e2b873ba5b8d76b34eb648950211244a73c8703d02cad332bb4682

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.2 This release

1 file

0.1.1

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page