38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from optparse import make_option
|
|
|
|
from django import apps
|
|
from django.core import management
|
|
|
|
|
|
class Command(management.BaseCommand):
|
|
help = 'Run all configured tests for the project.'
|
|
|
|
option_list = management.BaseCommand.option_list + (
|
|
make_option(
|
|
'--nomigrations', action='store_true', dest='nomigrations',
|
|
default=False,
|
|
help='Don\'t use migrations when creating the test database.'
|
|
),
|
|
make_option(
|
|
'--reverse', action='store_true', dest='reverse',
|
|
default=False,
|
|
help='Reverses test cases order.'
|
|
),
|
|
)
|
|
|
|
def handle(self, *args, **options):
|
|
kwargs = {}
|
|
if options.get('nomigrations'):
|
|
kwargs['nomigrations'] = True
|
|
|
|
if options.get('reverse'):
|
|
kwargs['reverse'] = True
|
|
|
|
test_apps = [app.name for app in apps.apps.get_app_configs() if getattr(app, 'test', False)]
|
|
|
|
print 'Testing: {}'.format(', '.join(test_apps))
|
|
|
|
management.call_command('test', *test_apps, interactive=False, **kwargs)
|