Don't write coverage to disk when testing
[0publish.git] / tests / testall.py
blob4f2b5f118298525eb8f140886fcf0ba1c9628e1a
1 #!/usr/bin/env python
2 import unittest, os, sys
3 for x in ['LANGUAGE', 'LANG']:
4 if x in os.environ:
5 del os.environ[x]
6 try:
7 import coverage
8 coverage.use_cache(False)
9 coverage.erase()
10 coverage.start()
11 except ImportError:
12 coverage = None
14 my_dir = os.path.dirname(sys.argv[0])
15 if not my_dir:
16 my_dir = os.getcwd()
18 sys.argv.append('-v')
20 suite_names = [f[:-3] for f in os.listdir(my_dir)
21 if f.startswith('test') and f.endswith('.py')]
22 suite_names.remove('testall')
23 suite_names.sort()
25 alltests = unittest.TestSuite()
27 for name in suite_names:
28 m = __import__(name, globals(), locals(), [])
29 alltests.addTest(m.suite)
31 a = unittest.TextTestRunner(verbosity=2).run(alltests)
33 if coverage:
34 coverage.stop()
35 else:
36 print "Coverage module not found. Skipping coverage report."
38 print "\nResult", a
39 if not a.wasSuccessful():
40 sys.exit(1)
42 if coverage:
43 all_sources = []
44 def incl(d):
45 for x in os.listdir(d):
46 if x.endswith('.py'):
47 all_sources.append(os.path.join(d, x))
48 incl('..')
49 coverage.report(all_sources + ['../0publish'])