7
7
from flaskext .script import Command , Option
8
8
9
9
from pyzen .core import main
10
+ from pyzen .runner import ColoredTextTestRunner
10
11
11
12
try :
12
13
from unittest2 import TestLoader
@@ -26,17 +27,21 @@ def _match_path(self, path, full_path, pattern):
26
27
return True
27
28
return False
28
29
29
- def run_tests (app , pattern , start_dir , verbosity ):
30
+ def run_tests (app , pattern , start_dir , verbosity , nocolor ):
30
31
print start_dir
31
32
loader = ZenTestLoader ()
32
33
suite = loader .discover (start_dir , pattern , start_dir )
33
- result = unittest .TextTestRunner (verbosity = verbosity ).run (suite )
34
+ if nocolor :
35
+ runner = unittest .TextTestRunner
36
+ else :
37
+ runner = ColoredTextTestRunner
38
+ result = runner (verbosity = verbosity ).run (suite )
34
39
return result
35
40
36
41
class Test (Command ):
37
42
"""Run app tests."""
38
43
39
- def __init__ (self , pattern = '*/tests/*.py;*/tests.py' , start_dir = None , verbosity = 0 ):
44
+ def __init__ (self , pattern = '*/tests/*.py;*/tests.py' , start_dir = None , verbosity = 1 ):
40
45
if start_dir is None :
41
46
# Find the file that called this constructor and use its directory
42
47
for f in inspect .stack ():
@@ -54,10 +59,11 @@ def get_options(self):
54
59
Option ('-p' , '--pattern' , dest = 'pattern' , default = self .default_pattern ),
55
60
Option ('-s' , '--start_dir' , dest = 'start_dir' , default = self .default_start_dir ),
56
61
Option ('-v' , '--verbosity' , dest = 'verbosity' , default = self .default_verbosity ),
62
+ Option ('--nocolor' , action = 'store_true' , default = False , help = 'Disable colored output' ),
57
63
]
58
64
59
- def run (self , app , pattern , start_dir , verbosity ):
60
- result = run_tests (app , pattern , start_dir , verbosity )
65
+ def run (self , app , pattern , start_dir , verbosity , nocolor ):
66
+ result = run_tests (app , pattern , start_dir , verbosity , nocolor )
61
67
if result .failures or result .errors :
62
68
sys .exit (1 )
63
69
@@ -70,8 +76,8 @@ def get_options(self):
70
76
options .append (Option ('-u' , '--ui' , help = 'Force the use of the given PyZen UI' ))
71
77
return options
72
78
73
- def run (self , app , pattern , start_dir , verbosity , ui ):
79
+ def run (self , app , pattern , start_dir , verbosity , ui , nocolor ):
74
80
try :
75
- main (ui , run_tests , app , pattern , start_dir , verbosity )
81
+ main (ui , run_tests , app , pattern , start_dir , verbosity , nocolor )
76
82
except KeyboardInterrupt :
77
83
pass
0 commit comments