Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Interactive test runner for Django projects

Project description

djtest

An interactive test runner for Django projects.

Purposes:

  • keep the list of apps available for test in a local configuration file
  • display the list of all available unit tests (-l option)
  • run unit tests for apps specified on command line
  • cleanup a test “media folder” before each execution
  • optionally filter the list of unit tests to be executed (-f option)

Installation

pip install djtest

or:

pip install git+https://github.com/morlandi/djtest

Sample usage

Using config file "./.djtest.conf"
usage: djtest [-h] [-v {0,1,2,3}] [-m] [-n] [-f FILTER] [-l] [apps [apps ...]]

Targets may specify either: 'all' for all available apps, and app name (one or
more), or a specific test module/method

positional arguments:
  apps

optional arguments:
  -h, --help            show this help message and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level. (default: 2)
  -m, --no-migrations   Skip migrations. (default: False)
  -n, --dry-run         Don't execute commands, just pretend. (default: False)
  -f FILTER, --filter FILTER
                        Filtering: run only test methods matching specified
                        pattern
  -l, --list            List available test methods
  --version             show program's version number and exit

Available apps: tasks, wallet_clients, frontend_api, trading_api, backend

Sample config file

A sample “skeleton” config file “./.djtest.conf” is automatically created on first run.

You should edit it to specify the list of testable apps.

[general]
project=myproject
test_settings_module=myproject.settings.test_settings
test_settings_no_migrations_module=myproject.settings.test_settings_no_migrations
media_folder="../public/test_media/"
apps=app1, app2, appN

Sample “test settings” module

from myproject.settings.settings import *

LANGUAGE_CODE = 'en'
TIME_ZONE = 'UTC'
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

...

Sample “test settings - no migrations” module

from myproject.settings.test_settings import *

class DisableMigrations(object):

    def __contains__(self, item):
        return True

    def __getitem__(self, item):
        #return "notmigrations"
        return None


MIGRATION_MODULES = DisableMigrations()

History

v0.1.2

  • cleanup

v0.1.1

  • add test settings example to Readme

v0.1.0

  • published on PyPI

v0.0.3

  • added versioning
  • added support for unittest.TestCase

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
djtest-0.1.2-py2.py3-none-any.whl (6.2 kB) Copy SHA256 hash SHA256 Wheel py2.py3

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page