Ran idioms filter on code
[zeroinstall.git] / tests / testall.py
blob10ef09c4d6679819520e36034914e6e68e3515cc
1 #!/usr/bin/env python
2 from __future__ import print_function
3 import unittest, os, sys
5 # Catch silly mistakes...
6 os.environ['HOME'] = '/home/idontexist'
8 try:
9 import coverage
10 coverage.erase()
11 coverage.start()
12 except ImportError:
13 coverage = None
15 my_dir = os.path.dirname(sys.argv[0])
16 if not my_dir:
17 my_dir=os.getcwd()
19 sys.argv.append('-v')
21 suite_names = [f[:-3] for f in os.listdir(my_dir)
22 if f.startswith('test') and f.endswith('.py')]
23 suite_names.remove('testall')
24 suite_names.sort()
26 alltests = unittest.TestSuite()
28 for name in suite_names:
29 m = __import__(name, globals(), locals(), [])
30 test = unittest.defaultTestLoader.loadTestsFromModule(m)
31 alltests.addTest(test)
33 a = unittest.TextTestRunner(verbosity=2).run(alltests)
35 if coverage:
36 coverage.stop()
37 else:
38 print("Coverage module not found. Skipping coverage report.")
40 print("\nResult", a)
41 if not a.wasSuccessful():
42 sys.exit(1)
44 if coverage:
45 all_sources = []
46 def incl(d):
47 for x in os.listdir(d):
48 if x.endswith('.py'):
49 all_sources.append(os.path.join(d, x))
50 incl('../zeroinstall')
51 incl('../zeroinstall/support')
52 incl('../zeroinstall/cmd')
53 incl('../zeroinstall/injector')
54 incl('../zeroinstall/zerostore')
55 coverage.report(all_sources + ['../0launch'])