| #!/usr/bin/env python |
| |
| import os |
| import sys |
| from optparse import OptionParser |
| |
| |
| def parse_args(): |
| parser = OptionParser() |
| parser.add_option('-s', '--settings', help='Define settings.') |
| parser.add_option('-t', '--unittest', help='Define which test to run. Default all.') |
| options, args = parser.parse_args() |
| |
| if not options.settings: |
| parser.print_help() |
| sys.exit(1) |
| |
| if not options.unittest: |
| options.unittest = ['aggregation'] |
| |
| return options |
| |
| |
| def get_runner(settings_module): |
| ''' |
| Asks Django for the TestRunner defined in settings or the default one. |
| ''' |
| os.environ['DJANGO_SETTINGS_MODULE'] = settings_module |
| |
| import django |
| from django.test.utils import get_runner |
| from django.conf import settings |
| |
| if hasattr(django, 'setup'): |
| django.setup() |
| |
| return get_runner(settings) |
| |
| |
| def runtests(): |
| options = parse_args() |
| TestRunner = get_runner(options.settings) |
| runner = TestRunner(verbosity=1, interactive=True, failfast=False) |
| sys.exit(runner.run_tests([])) |
| |
| |
| if __name__ == '__main__': |
| runtests() |