Django-monitor / runtests.py

#!/usr/bin/env python
import os
import sys

from django.conf import settings
try:
    from django.utils.functional import empty
except ImportError:
    empty = None

def setup_test_environment():
    """Reset settings to be just enough to test this app."""
    settings._wrapped = empty
    MIDDLEWARES = (
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        # We are concerned about this middleware only.
        'django_monitor.middleware.MonitorMiddleware',
    )
    apps = [
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.admin',
        'django.contrib.sites',
        'django_monitor',
        'django_monitor.tests.test_app',
    ]
    settings_dict = {
        'DATABASES': {
            'default': {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': 'test_dm.db'
            }
        },
        'MIDDLEWARE_CLASSES': MIDDLEWARES,
        'INSTALLED_APPS': apps,
        'STATIC_URL': '/static/',
        'ROOT_URLCONF': 'django_monitor.tests.urls'
    }
    settings.configure(**settings_dict)

def runtests(*test_args):
    """
    Build a test environment & a test_runner. Run the tests & return the 
    number of failures to terminal.
    """
    setup_test_environment()
    parent = os.path.dirname(os.path.abspath(__file__))
    sys.path.insert(0, parent)
    try:
        from django.test.simple import DjangoTestSuiteRunner

        def run_tests(test_args, verbosity, interactive):
            runner = DjangoTestSuiteRunner(
                verbosity = verbosity, interactive = interactive, 
                failfast = True
            )
            return runner.run_tests(test_args)
    except ImportError:
        from django.test.simple import run_tests

    failures = run_tests(test_args, verbosity = 1, interactive = True)
    sys.exit(failures)

if __name__ == "__main__":
    """Unit tests of the app, finance_schedule, are run."""
    runtests('django_monitor')
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.