forked from django-treebeard/django-treebeard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathruntests.py
executable file
·80 lines (67 loc) · 2.7 KB
/
runtests.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env python
""" runtests.py runs tests
Read docs/tests for help on how to run the test suite.
"""
import optparse
import os
import coverage
from django.conf import settings
from django.core.management import call_command
def runtests():
parser = optparse.OptionParser()
parser.add_option('--verbosity', dest='verbosity', default='1')
parser.add_option('--coverage', dest='coverage', default='2')
parser.add_option('--DATABASE_ENGINE', dest='DATABASE_ENGINE',
default='sqlite3')
parser.add_option('--DATABASE_NAME', dest='DATABASE_NAME', default='')
parser.add_option('--DATABASE_USER', dest='DATABASE_USER', default='')
parser.add_option('--DATABASE_PASSWORD', dest='DATABASE_PASSWORD',
default='')
parser.add_option('--DATABASE_HOST', dest='DATABASE_HOST', default='')
parser.add_option('--DATABASE_PORT', dest='DATABASE_PORT', default='')
options, args = parser.parse_args()
dboptions = {}
if options.DATABASE_ENGINE == 'mysql':
dboptions = {
"init_command": "SET storage_engine=INNODB,"
"character_set_connection=utf8,"
"collation_connection=utf8_unicode_ci"}
if not options.DATABASE_NAME and options.DATABASE_ENGINE != 'sqlite3':
options.DATABASE_NAME = 'treebeard'
if not settings.configured:
settings.configure(
DATABASE_ENGINE=options.DATABASE_ENGINE,
DATABASE_NAME=options.DATABASE_NAME,
DATABASE_USER=options.DATABASE_USER,
DATABASE_PASSWORD=options.DATABASE_PASSWORD,
DATABASE_HOST=options.DATABASE_HOST,
DATABASE_PORT=options.DATABASE_PORT,
DATABASE_OPTIONS=dboptions,
INSTALLED_APPS=[
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'treebeard',
'treebeard.tests'])
covlevel = int(options.coverage)
if covlevel:
current_dir = os.path.dirname(os.path.abspath(__file__))
if covlevel == 2:
branch = True
else:
branch = False
cov = coverage.coverage(branch=branch,
include=[current_dir + '/treebeard/*.py'],
omit=[current_dir + '/treebeard/numconv.py',
current_dir + '/treebeard/tests/*'])
cov.load()
cov.start()
if not args:
args = ['tests']
call_command('test', verbosity=options.verbosity, *args)
if covlevel:
cov.stop()
cov.save()
if __name__ == '__main__':
runtests()