493
by root
|
1
|
"""A very simple test harness for running nevow tests.
|
2
|
|
3
|
If twisted is installed, this will just run trial.
|
4
|
|
5
|
If not, it will run the tests which can pass without twisted being installed,
|
6
|
using the stdlib unittest module.
|
7
|
"""
|
8
|
|
9
|
import sys, os, unittest
|
10
|
|
11
|
skips = []
|
12
|
|
13
|
try:
|
14
|
import twisted
|
15
|
sys.exit(os.system('trial -v nevow.test formless.test'))
|
16
|
except ImportError:
|
17
|
skips.extend([
|
18
|
'nevow.test.test_disktemplate',
|
19
|
'nevow.test.test_later',
|
20
|
'formless.test.test_freeform'])
|
21
|
|
22
|
|
23
|
import nevow.test, formless.test
|
24
|
|
25
|
def getModuleNames(mod):
|
26
|
for name in os.listdir(os.path.split(mod.__file__)[0]):
|
27
|
if not name.startswith('__') and name.endswith('.py'): yield name[:-3]
|
28
|
|
29
|
names = []
|
30
|
mods = [
|
31
|
nevow.test,
|
32
|
formless.test
|
33
|
]
|
34
|
|
35
|
for mod in mods:
|
36
|
names.extend(['.'.join([mod.__name__, x]) for x in getModuleNames(mod)])
|
37
|
|
38
|
names = filter(lambda x: x not in skips, names)
|
39
|
|
40
|
|
41
|
class SkipTestLoader(unittest.TestLoader):
|
42
|
def getTestCaseNames(self, testCaseClass):
|
43
|
names = unittest.TestLoader.getTestCaseNames(self, testCaseClass)
|
44
|
for n in names:
|
45
|
meth = getattr(testCaseClass, n)
|
46
|
if hasattr(meth, 'skip'): print "SKIP:", testCaseClass.__name__, n, '\n\t', meth.skip
|
47
|
elif hasattr(meth, 'todo'): print "TODO:", testCaseClass.__name__, n, '\n\t', meth.todo
|
48
|
else: yield n
|
49
|
|
50
|
|
51
|
|
52
|
suite = SkipTestLoader().loadTestsFromNames(names)
|
53
|
result = unittest.TextTestRunner().run(suite)
|
54
|
sys.exit(not result.wasSuccessful())
|
55
|
|