summaryrefslogtreecommitdiff
path: root/coverage/control.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-02-22 21:55:45 -0500
committerNed Batchelder <ned@nedbatchelder.com>2015-02-22 21:55:45 -0500
commit7fd0385cfa5b776b4c7b10c4ff077296db005c49 (patch)
tree37567b269a2491eed276dc725234fade3d2bb0f2 /coverage/control.py
parent1b04c715aa30a2e2a4cf3f6c3d0b65b93363c83d (diff)
parentae8870bf5732895c1e68c6f64268a775a617f403 (diff)
downloadpython-coveragepy-7fd0385cfa5b776b4c7b10c4ff077296db005c49.tar.gz
Merge other work
Diffstat (limited to 'coverage/control.py')
-rw-r--r--coverage/control.py20
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.