Skip to main content

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
                        (multiple patterns separated by ',')
  -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.9

  • ignore media_folder when empty

v0.1.8

  • force the stdout and stderr streams to be unbuffered

v0.1.7

  • fix –list option when no filter have been specified

v0.1.6

  • Accept multiple filters separated by ‘,’

  • Improved checks for command line parameters

v0.1.5

  • Create sample test settings files

  • rename dry_run and deprecations options

  • removed dependency on “six”

v0.1.4

  • config file: use either ‘,’ or spaces as separators in the app list

v0.1.3

  • –deprecations switch added

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.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

djtest-0.1.9-py2.py3-none-any.whl (7.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page