--- a/tests/run-tests.py Sat Mar 28 12:58:44 2015 -0700
+++ b/tests/run-tests.py Fri Mar 27 23:17:19 2015 -0700
@@ -1985,27 +1985,27 @@
def _outputcoverage(self):
"""Produce code coverage output."""
- vlog('# Producing coverage report')
- os.chdir(self._pythondir)
+ from coverage import coverage
- def covrun(*args):
- cmd = 'coverage %s' % ' '.join(args)
- vlog('# Running: %s' % cmd)
- os.system(cmd)
+ vlog('# Producing coverage report')
+ # chdir is the easiest way to get short, relative paths in the
+ # output.
+ os.chdir(self._pythondir)
+ covdir = os.path.join(self._installdir, '..')
+ cov = coverage(data_file=os.path.join(covdir, '.coverage'))
+ cov.load()
- covrun('-c')
- omit = ','.join(os.path.join(x, '*') for x in
- [self._bindir, self._testdir])
- covrun('-i', '-r', '"--omit=%s"' % omit) # report
+ omit = [os.path.join(x, '*') for x in [self._bindir, self._testdir]]
+ cov.report(ignore_errors=True, omit=omit)
+
if self.options.htmlcov:
htmldir = os.path.join(self._testdir, 'htmlcov')
- covrun('-i', '-b', '"--directory=%s"' % htmldir,
- '"--omit=%s"' % omit)
+ cov.html_report(directory=htmldir, omit=omit)
if self.options.annotate:
adir = os.path.join(self._testdir, 'annotated')
if not os.path.isdir(adir):
os.mkdir(adir)
- covrun('-i', '-a', '"--directory=%s"' % adir, '"--omit=%s"' % omit)
+ cov.annotate(directory=adir, omit=omit)
def _findprogram(self, program):
"""Search PATH for a executable program"""