Skip to main content

A lightweight Django "test" command for quick unittest runs.

Project description

A lightweight Django manage.py litetest command for quick unittest runs.

If you’ve been developing in Django for a while, you probably have plenty of tests written. This is great, but they probably take a long time to run. If you do any sort of Test-Driven Development, slow tests means a frustrating edit-test loop.

django-litetest helps you run quick, lightweight tests by doing a few things:

  • Use in-memory SQLite databases instead of your usual test databases,

  • Use in-memory caches instead of your usual caches,

  • If you’re using South, creates models directly.

With django-litetest, fixing a bug becomes as quick as this:

  1. Add a new test to reproduce the bug,

  2. Run manage.py litetest testname,

  3. Edit the code to fix the bug,

  4. Run manage.py litetest testname again,

  5. Run manage.py test to ensure that all your tests pass.

Installation

You can get a copy of the source by using:

$ git clone https://github.com/sfllaw/django-litetest.git

This app requires:

  • Python 2.6 or higher,

  • Django 1.3 or higher,

  • SpatiaLite (optional for GIS).

As well, this app is available from PyPi:

$ pip install django-litetest

Configuration

In your Django settings file:

  • Add 'django_litetest' to INSTALLED_APPS (after 'south' if you are using it),

  • Add 'LITETEST': True to each of the DATABASES you want sped up,

  • Add 'LITETEST': True to each of the CACHES you want sped up,

  • If you are using South, set SOUTH_TESTS_MIGRATE = 'LITETEST' to avoid migrations.

Example settings file

INSTALLED_APPS = (
    'south',
    'django_litetest',
    ...
)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'db.example.com',
        'PORT': '',
        'LITETEST': True,
    }
}

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': 'memcache.example.com:11211',
        'LITETEST': True,
    },
}

SOUTH_TESTS_MIGRATE = 'LITETEST'

Reporting bugs and submitting patches

Please check our issue tracker for known bugs and feature requests.

We accept pull requests for fixes and new features.

Authors

Simon Law <sfllaw@sfllaw.ca>

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

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

Source Distribution

django-litetest-1.0.tar.gz (8.7 kB view details)

Uploaded Source

File details

Details for the file django-litetest-1.0.tar.gz.

File metadata

File hashes

Hashes for django-litetest-1.0.tar.gz
Algorithm Hash digest
SHA256 15fc214cd3c8e6353bae131abf9c149a435abe448cf084955d3173002b781c5d
MD5 468fd699809235f445f4913c58ec157a
BLAKE2b-256 8a127373b89cd57d0edaf169556925bac80c13882aee67b2e1cd1d3018090951

See more details on using hashes here.

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