Start development series 1.9-post
[zeroinstall.git] / tests / testall.py
blob5db4e084b4a4ef5dc863b23a7d24ae9bcb2f2382
1 #!/usr/bin/env python
3 from __future__ import print_function
5 import unittest, os, sys
7 # Catch silly mistakes...
8 os.environ['HOME'] = '/home/idontexist'
10 try:
11 import coverage
12 coverage.use_cache(False)
13 coverage.erase()
14 coverage.start()
15 except ImportError:
16 coverage = None
18 my_dir = os.path.dirname(sys.argv[0])
19 if not my_dir:
20 my_dir=os.getcwd()
22 sys.argv.append('-v')
24 suite_names = [f[:-3] for f in os.listdir(my_dir)
25 if f.startswith('test') and f.endswith('.py')]
26 suite_names.remove('testall')
27 suite_names.sort()
29 alltests = unittest.TestSuite()
31 for name in suite_names:
32 m = __import__(name, globals(), locals(), [])
33 test = unittest.defaultTestLoader.loadTestsFromModule(m)
34 alltests.addTest(test)
36 a = unittest.TextTestRunner(verbosity=2).run(alltests)
38 if coverage:
39 coverage.stop()
40 else:
41 print("Coverage module not found. Skipping coverage report.")
43 print("\nResult", a)
44 if not a.wasSuccessful():
45 sys.exit(1)
47 if coverage:
48 all_sources = []
49 def incl(d):
50 for x in os.listdir(d):
51 if x.endswith('.py'):
52 all_sources.append(os.path.join(d, x))
53 incl('../zeroinstall')
54 incl('../zeroinstall/support')
55 incl('../zeroinstall/cmd')
56 incl('../zeroinstall/injector')
57 incl('../zeroinstall/zerostore')
58 coverage.report(all_sources + ['../0launch'])