Skip to content

Commit f5a65dd

Browse files
author
Joachim Jablon
committed
clean runtests
1 parent 52269ed commit f5a65dd

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

runtests.py

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
11
#!/usr/bin/env python
22
import sys
33
import os
4+
import contextlib
45

5-
try:
6-
from django import setup
7-
except ImportError:
8-
import traceback
9-
traceback.print_exc()
10-
msg = "To fix this error, run: pip install -r requirements_test.txt"
11-
raise ImportError(msg)
126

13-
from django.test.utils import get_runner
14-
from django.conf import settings
15-
os.environ["DJANGO_SETTINGS_MODULE"] = "tests.readonly_project.settings"
16-
setup()
17-
18-
19-
def run_tests(*test_args):
7+
@contextlib.contextmanager
8+
def cover():
209
do_coverage = "COVERAGE" in os.environ
2110

2211
if do_coverage:
@@ -25,12 +14,32 @@ def run_tests(*test_args):
2514
cov.start()
2615
print("Coverage will be generated")
2716

28-
from django.core.management import execute_from_command_line
29-
execute_from_command_line(["", "test", ] + sys.argv[1:])
17+
try:
18+
yield
19+
finally:
20+
if do_coverage:
21+
cov.stop()
22+
cov.save()
3023

31-
if do_coverage:
32-
cov.stop()
33-
cov.save()
24+
25+
def run_tests(*test_args):
26+
27+
with cover():
28+
try:
29+
from django import setup
30+
except ImportError:
31+
import traceback
32+
traceback.print_exc()
33+
msg = ("To fix this error, run: "
34+
"pip install -r requirements_test.txt")
35+
raise ImportError(msg)
36+
37+
module = "tests.readonly_project.settings"
38+
os.environ["DJANGO_SETTINGS_MODULE"] = module
39+
setup()
40+
41+
from django.core.management import execute_from_command_line
42+
execute_from_command_line(["", "test", ] + sys.argv[1:])
3443

3544

3645
if __name__ == '__main__':

0 commit comments

Comments
 (0)