forked from 5monkeys/django-enumfield
-
Notifications
You must be signed in to change notification settings - Fork 2
/
run_tests.py
66 lines (52 loc) · 1.83 KB
/
run_tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python
import os
import sys
import django
from django.conf import settings
def delete_migrations():
from os.path import exists, abspath, dirname, join
migrations_dir = join(
dirname(abspath(__file__)), 'django_enumfield', 'tests', 'migrations')
if exists(migrations_dir):
os.system('rm -r ' + migrations_dir)
def main():
import warnings
warnings.filterwarnings('error', category=DeprecationWarning)
delete_migrations()
if not settings.configured:
# Dynamically configure the Django settings with the minimum necessary to
# get Django running tests
settings.configure(
INSTALLED_APPS=[
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.admin',
'django.contrib.sessions',
'django_enumfield',
'django_enumfield.tests',
],
# Django replaces this, but it still wants it. *shrugs*
DATABASE_ENGINE='django.db.backends.sqlite3',
DATABASES={
'default': {
'ENGINE': 'django.db.backends.sqlite3',
}
},
MEDIA_ROOT='/tmp/django_enums/',
MEDIA_PATH='/media/',
ROOT_URLCONF='django_enumfield.tests.urls',
DEBUG=True,
TEMPLATE_DEBUG=True,
)
# Compatibility with Django 1.7's stricter initialization
if hasattr(django, 'setup'):
django.setup()
from django.test.utils import get_runner
test_runner = get_runner(settings)(verbosity=2, interactive=True)
if '--failfast' in sys.argv:
test_runner.failfast = True
failures = test_runner.run_tests(['django_enumfield'])
delete_migrations()
sys.exit(failures)
if __name__ == '__main__':
main()