diff options
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/python.py | 4 | ||||
-rw-r--r-- | coverage/report.py | 11 |
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) |