diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-04-20 09:13:14 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-04-20 09:13:14 -0400 |
commit | 6aae48656f456ec0cbdf7add2be7a26de63200af (patch) | |
tree | 386c092865d82b26f8616dea9e2e6ed5df6b1f76 /coverage/report.py | |
parent | 5d1cdd285721375e0973bf37f6504aefb1a8d74d (diff) | |
download | python-coveragepy-6aae48656f456ec0cbdf7add2be7a26de63200af.tar.gz |
HTML reporting, phase 0.
Diffstat (limited to 'coverage/report.py')
-rw-r--r-- | coverage/report.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/coverage/report.py b/coverage/report.py index 9859eb9..ef29676 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -1,5 +1,6 @@ """Reporter foundation for coverage.py""" +import os from coverage.codeunit import code_unit_factory class Reporter(object): @@ -30,3 +31,29 @@ class Reporter(object): morfs, self.coverage.file_locator, omit_prefixes ) self.code_units.sort() + + def report_files(self, report_fn, morfs, directory=None, + omit_prefixes=None): + """Run a reporting function on a number of morfs. + + `report_fn` is called for each relative morf in `morfs`. + + """ + self.find_code_units(morfs, omit_prefixes) + + self.directory = directory + if self.directory and not os.path.exists(self.directory): + os.makedirs(self.directory) + + for cu in self.code_units: + try: + if not cu.relative: + continue + statements, excluded, missing, _ = self.coverage.analyze(cu) + report_fn(cu, statements, excluded, missing) + except KeyboardInterrupt: + raise + except: + if not self.ignore_errors: + raise + |