djtest 0.1.9
Interactive test runner for Django projects
License: MIT
Keywords: django test

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