diff options
-rw-r--r-- | coverage/annotate.py | 6 | ||||
-rw-r--r-- | coverage/html.py | 7 | ||||
-rw-r--r-- | coverage/report.py | 11 |
3 files changed, 11 insertions, 13 deletions
diff --git a/coverage/annotate.py b/coverage/annotate.py index 1d228004..3380dccc 100644 --- a/coverage/annotate.py +++ b/coverage/annotate.py @@ -8,7 +8,7 @@ import os import re from coverage.files import flat_rootname -from coverage.misc import isolate_module +from coverage.misc import ensure_dir, isolate_module from coverage.report import Reporter os = isolate_module(os) @@ -49,8 +49,9 @@ class AnnotateReporter(Reporter): See `coverage.report()` for arguments. """ + self.directory = directory self.coverage.get_data() - self.report_files(self.annotate_file, morfs, directory) + self.report_files(self.annotate_file, morfs) def annotate_file(self, fr, analysis): """Annotate a single file. @@ -63,6 +64,7 @@ class AnnotateReporter(Reporter): excluded = sorted(analysis.excluded) if self.directory: + ensure_dir(self.directory) dest_file = os.path.join(self.directory, flat_rootname(fr.relative_filename())) if dest_file.endswith("_py"): dest_file = dest_file[:-3] + ".py" diff --git a/coverage/html.py b/coverage/html.py index 6cfb85ff..629f7d6a 100644 --- a/coverage/html.py +++ b/coverage/html.py @@ -15,7 +15,7 @@ from coverage import env from coverage.backward import iitems from coverage.data import add_data_to_hash from coverage.files import flat_rootname -from coverage.misc import CoverageException, file_be_gone, Hasher, isolate_module +from coverage.misc import CoverageException, ensure_dir, file_be_gone, Hasher, isolate_module from coverage.report import Reporter from coverage.results import Numbers from coverage.templite import Templite @@ -142,9 +142,11 @@ class HtmlReporter(Reporter): if self.config.extra_css: self.extra_css = os.path.basename(self.config.extra_css) + self.directory = self.config.html_dir + # Process all the files. self.coverage.get_data().set_query_contexts(self.config.query_contexts) - self.report_files(self.html_file, morfs, self.config.html_dir) + self.report_files(self.html_file, morfs) if not self.all_files_nums: raise CoverageException("No data to report.") @@ -182,6 +184,7 @@ class HtmlReporter(Reporter): """Generate an HTML file for one source file.""" rootname = flat_rootname(fr.relative_filename()) html_filename = rootname + ".html" + ensure_dir(self.directory) html_path = os.path.join(self.directory, html_filename) # Get the numbers for this file. diff --git a/coverage/report.py b/coverage/report.py index 6f87bbf2..c694d79b 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -7,7 +7,7 @@ import os import warnings from coverage.files import prep_patterns, FnmatchMatcher -from coverage.misc import CoverageException, NoSource, NotPython, ensure_dir, isolate_module +from coverage.misc import CoverageException, NoSource, NotPython, isolate_module os = isolate_module(os) @@ -25,10 +25,6 @@ class Reporter(object): self.coverage = coverage self.config = config - # The directory into which to place the report, used by some derived - # classes. - self.directory = None - # Our method find_file_reporters used to set an attribute that other # code could read. That's been refactored away, but some third parties # were using that attribute. We'll continue to support it in a noisy @@ -65,7 +61,7 @@ class Reporter(object): self._file_reporters = sorted(reporters) return self._file_reporters - def report_files(self, report_fn, morfs, directory=None): + def report_files(self, report_fn, morfs): """Run a reporting function on a number of morfs. `report_fn` is called for each relative morf in `morfs`. It is called @@ -82,9 +78,6 @@ class Reporter(object): if not file_reporters: raise CoverageException("No data to report.") - self.directory = directory - ensure_dir(self.directory) - for fr in file_reporters: try: report_fn(fr, self.coverage._analyze(fr)) |