summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/python.py4
-rw-r--r--coverage/report.py11
2 files changed, 8 insertions, 7 deletions
diff --git a/coverage/python.py b/coverage/python.py
index 969bfa89..78c3e716 100644
--- a/coverage/python.py
+++ b/coverage/python.py
@@ -57,9 +57,7 @@ def get_python_source(filename):
break
else:
# Couldn't find source.
- exc_msg = f"No source for code: '{filename}'.\n"
- exc_msg += "Aborting report output, consider using -i."
- raise NoSource(exc_msg)
+ raise NoSource(f"No source for code: '{filename}'.")
# Replace \f because of http://bugs.python.org/issue19035
source = source.replace(b'\f', b' ')
diff --git a/coverage/report.py b/coverage/report.py
index 112dcae1..c1aaa45b 100644
--- a/coverage/report.py
+++ b/coverage/report.py
@@ -5,7 +5,7 @@
import sys
-from coverage.exceptions import CoverageException, NoSource, NotPython
+from coverage.exceptions import CoverageException, NotPython
from coverage.files import prep_patterns, FnmatchMatcher
from coverage.misc import ensure_dir_for_file, file_be_gone
@@ -70,9 +70,6 @@ def get_analysis_to_report(coverage, morfs):
for fr in sorted(file_reporters):
try:
analysis = coverage._analyze(fr)
- except NoSource:
- if not config.ignore_errors:
- raise
except NotPython:
# Only report errors for .py files, and only if we didn't
# explicitly suppress those errors.
@@ -84,5 +81,11 @@ def get_analysis_to_report(coverage, morfs):
coverage._warn(msg, slug="couldnt-parse")
else:
raise
+ except Exception as exc:
+ if config.ignore_errors:
+ msg = f"Couldn't parse '{fr.filename}': {exc}".rstrip()
+ coverage._warn(msg, slug="couldnt-parse")
+ else:
+ raise
else:
yield (fr, analysis)