diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-02-22 21:55:45 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-02-22 21:55:45 -0500 |
commit | 7fd0385cfa5b776b4c7b10c4ff077296db005c49 (patch) | |
tree | 37567b269a2491eed276dc725234fade3d2bb0f2 /coverage/control.py | |
parent | 1b04c715aa30a2e2a4cf3f6c3d0b65b93363c83d (diff) | |
parent | ae8870bf5732895c1e68c6f64268a775a617f403 (diff) | |
download | python-coveragepy-7fd0385cfa5b776b4c7b10c4ff077296db005c49.tar.gz |
Merge other work
Diffstat (limited to 'coverage/control.py')
-rw-r--r-- | coverage/control.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/coverage/control.py b/coverage/control.py index 2db5802..2c0d9ed 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -18,7 +18,7 @@ from coverage.data import CoverageData from coverage.debug import DebugControl from coverage.files import FileLocator, TreeMatcher, FnmatchMatcher from coverage.files import PathAliases, find_python_files, prep_patterns -from coverage.files import ModuleMatcher +from coverage.files import ModuleMatcher, abs_file from coverage.html import HtmlReporter from coverage.misc import CoverageException, bool_or_none, join_regex from coverage.misc import file_be_gone, overrides @@ -837,12 +837,13 @@ class Coverage(object): plugin = None if isinstance(morf, string_class): - plugin_name = self.data.plugin_data().get(morf) + abs_morf = abs_file(morf) + plugin_name = self.data.plugin_data().get(abs_morf) if plugin_name: plugin = self.plugins.get(plugin_name) if plugin: - file_reporter = plugin.file_reporter(morf) + file_reporter = plugin.file_reporter(abs_morf) if file_reporter is None: raise CoverageException( "Plugin %r did not provide a file reporter for %r." % ( @@ -852,6 +853,13 @@ class Coverage(object): else: file_reporter = PythonFileReporter(morf, self) + # The FileReporter can have a name attribute, but if it doesn't, we'll + # supply it as the relative path to self.filename. + if not hasattr(file_reporter, "name"): + file_reporter.name = self.file_locator.relative_filename( + file_reporter.filename + ) + return file_reporter def _get_file_reporters(self, morfs=None): @@ -889,9 +897,9 @@ class Coverage(object): Each module in `morfs` is listed, with counts of statements, executed statements, missing statements, and a list of lines missed. - `include` is a list of filename patterns. Modules whose filenames - match those patterns will be included in the report. Modules matching - `omit` will not be included in the report. + `include` is a list of filename patterns. Files that match will be + included in the report. Files matching `omit` will not be included in + the report. Returns a float, the total percentage covered. |