diff options
-rw-r--r-- | coverage/control.py | 19 | ||||
-rw-r--r-- | coverage/report.py | 5 | ||||
-rw-r--r-- | test/coverage_coverage.py | 1 | ||||
-rw-r--r-- | test/test_api.py | 11 |
4 files changed, 21 insertions, 15 deletions
diff --git a/coverage/control.py b/coverage/control.py index 5381e0c..529f525 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -73,6 +73,7 @@ class coverage: def stop(self): self.collector.stop() + self._harvest_data() def erase(self): self.get_ready() @@ -101,15 +102,15 @@ class coverage: return self.exclude_list def save(self): - self._group_collected_data() + self._harvest_data() self.data.write() def combine(self): """Entry point for combining together parallel-mode coverage data.""" self.data.combine_parallel_data() - def _group_collected_data(self): - """Group the collected data by filename and reset the collector.""" + def _harvest_data(self): + """Get the collected data by filename and reset the collector.""" self.data.add_line_data(self.collector.data_points()) self.collector.reset() @@ -151,8 +152,6 @@ class coverage: text=source, filename=filename, exclude=self.exclude_re ) - self._group_collected_data() - # Identify missing statements. missing = [] execed = self.data.executed_lines(filename) @@ -193,13 +192,15 @@ class coverage: excluded lines have "-", and missing lines have "!". """ - rpt = AnnotateReporter(self, ignore_errors) - rpt.report(morfs, directory=directory, omit_prefixes=omit_prefixes) + reporter = AnnotateReporter(self, ignore_errors) + reporter.report( + morfs, directory=directory, omit_prefixes=omit_prefixes) def html_report(self, morfs=None, directory=None, ignore_errors=False, omit_prefixes=None): """Generate an HTML report. """ - rpt = HtmlReporter(self, ignore_errors) - rpt.report(morfs, directory=directory, omit_prefixes=omit_prefixes) + reporter = HtmlReporter(self, ignore_errors) + reporter.report( + morfs, directory=directory, omit_prefixes=omit_prefixes) diff --git a/coverage/report.py b/coverage/report.py index d4aeb4d..7941116 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -22,7 +22,7 @@ class Reporter(object): # The directory into which to place the report, used by some derived # classes. self.directory = None - + def find_code_units(self, morfs, omit_prefixes): """Find the code units we'll report on. @@ -32,8 +32,7 @@ class Reporter(object): """ morfs = morfs or self.coverage.data.executed_files() self.code_units = code_unit_factory( - morfs, self.coverage.file_locator, omit_prefixes - ) + morfs, self.coverage.file_locator, omit_prefixes) self.code_units.sort() def report_files(self, report_fn, morfs, directory=None, diff --git a/test/coverage_coverage.py b/test/coverage_coverage.py index 1f73bab..0ab0e2f 100644 --- a/test/coverage_coverage.py +++ b/test/coverage_coverage.py @@ -30,7 +30,6 @@ import nose nose.run(sys.argv[1:]) cov.stop() -cov.save() # TODO: This is needed to get group_collected_data called. cov.clear_exclude() cov.exclude("#pragma: no cover") diff --git a/test/test_api.py b/test/test_api.py index e4c5970..35278e9 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -1,6 +1,6 @@ """Tests for Coverage's api.""" -import os, sys, textwrap +import os, re, sys, textwrap from cStringIO import StringIO import coverage @@ -47,7 +47,6 @@ class ApiTest(CoverageTest): coverage.start() self.importModule(modname) coverage.stop() - coverage.analysis(modname + ".py") def testReport(self): self.doReportWork("mycode2") @@ -59,6 +58,7 @@ class ApiTest(CoverageTest): """)) def testReportFile(self): + # The file= argument of coverage.report makes the report go there. self.doReportWork("mycode3") fout = StringIO() coverage.report(["mycode3.py"], file=fout) @@ -69,6 +69,13 @@ class ApiTest(CoverageTest): mycode3 7 4 57% 4-6 """)) + def testReportDefault(self): + # Calling report() with no morfs will report on whatever was executed. + self.doReportWork("mycode4") + coverage.report() + rpt = re.sub(r"\s+", " ", self.stdout()) + self.assert_("mycode4 7 4 57% 4-6" in rpt) + def testUnexecutedFile(self): cov = coverage.coverage() |