diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2016-12-17 16:14:58 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2016-12-17 16:14:58 -0500 |
commit | 8ea587ab6a390051153bc8465040025f28cea79b (patch) | |
tree | c7355880cfcc975e0c954ca712db5e711dc4199e /coverage/execfile.py | |
parent | 5066f0af438efcc89cb86969353357352e38c7bb (diff) | |
download | python-coveragepy-8ea587ab6a390051153bc8465040025f28cea79b.tar.gz |
Provide a more useful error message if failing to run a non-Python file. #514
Diffstat (limited to 'coverage/execfile.py')
-rw-r--r-- | coverage/execfile.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/coverage/execfile.py b/coverage/execfile.py index 3e20a52..58b0540 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -10,7 +10,7 @@ import types from coverage.backward import BUILTINS from coverage.backward import PYC_MAGIC_NUMBER, imp, importlib_util_find_spec -from coverage.misc import ExceptionDuringRun, NoCode, NoSource, isolate_module +from coverage.misc import CoverageException, ExceptionDuringRun, NoCode, NoSource, isolate_module from coverage.phystokens import compile_unicode from coverage.python import get_python_source @@ -166,11 +166,17 @@ def run_python_file(filename, args, package=None, modulename=None, path0=None): sys.path[0] = path0 if path0 is not None else my_path0 try: - # Make a code object somehow. - if filename.endswith((".pyc", ".pyo")): - code = make_code_from_pyc(filename) - else: - code = make_code_from_py(filename) + try: + # Make a code object somehow. + if filename.endswith((".pyc", ".pyo")): + code = make_code_from_pyc(filename) + else: + code = make_code_from_py(filename) + except CoverageException: + raise + except Exception as exc: + msg = "Couldn't run {filename!r} as Python code: {exc.__class__.__name__}: {exc}" + raise CoverageException(msg.format(filename=filename, exc=exc)) # Execute the code object. try: |