summaryrefslogtreecommitdiff
path: root/coverage/report.py
diff options
context:
space:
mode:
Diffstat (limited to 'coverage/report.py')
-rw-r--r--coverage/report.py35
1 files changed, 16 insertions, 19 deletions
diff --git a/coverage/report.py b/coverage/report.py
index 33a46070..df34e43f 100644
--- a/coverage/report.py
+++ b/coverage/report.py
@@ -1,9 +1,14 @@
-"""Reporter foundation for Coverage."""
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+
+"""Reporter foundation for coverage.py."""
import os
from coverage.files import prep_patterns, FnmatchMatcher
-from coverage.misc import CoverageException, NoSource, NotPython
+from coverage.misc import CoverageException, NoSource, NotPython, isolate_module
+
+os = isolate_module(os)
class Reporter(object):
@@ -29,30 +34,20 @@ class Reporter(object):
def find_file_reporters(self, morfs):
"""Find the FileReporters we'll report on.
- `morfs` is a list of modules or filenames.
+ `morfs` is a list of modules or file names.
"""
- self.file_reporters = self.coverage._get_file_reporters(morfs)
+ reporters = self.coverage._get_file_reporters(morfs)
if self.config.include:
- patterns = prep_patterns(self.config.include)
- matcher = FnmatchMatcher(patterns)
- filtered = []
- for fr in self.file_reporters:
- if matcher.match(fr.filename):
- filtered.append(fr)
- self.file_reporters = filtered
+ matcher = FnmatchMatcher(prep_patterns(self.config.include))
+ reporters = [fr for fr in reporters if matcher.match(fr.filename)]
if self.config.omit:
- patterns = prep_patterns(self.config.omit)
- matcher = FnmatchMatcher(patterns)
- filtered = []
- for fr in self.file_reporters:
- if not matcher.match(fr.filename):
- filtered.append(fr)
- self.file_reporters = filtered
+ matcher = FnmatchMatcher(prep_patterns(self.config.omit))
+ reporters = [fr for fr in reporters if not matcher.match(fr.filename)]
- self.file_reporters.sort()
+ self.file_reporters = sorted(reporters)
def report_files(self, report_fn, morfs, directory=None):
"""Run a reporting function on a number of morfs.
@@ -84,5 +79,7 @@ class Reporter(object):
except NotPython:
# Only report errors for .py files, and only if we didn't
# explicitly suppress those errors.
+ # NotPython is only raised by PythonFileReporter, which has a
+ # should_be_python() method.
if fr.should_be_python() and not self.config.ignore_errors:
raise