summaryrefslogtreecommitdiff
path: root/coverage/execfile.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2014-10-28 09:24:33 -0400
committerNed Batchelder <ned@nedbatchelder.com>2014-10-28 09:24:33 -0400
commit0be2f9b03ba669803910a9c5e72e9135ee7f9602 (patch)
tree81bbc7a3b24c69ef8e07ec6e612a883a97e1328f /coverage/execfile.py
parentf357d92aa61437d10dee830a97cfb9932da3db09 (diff)
downloadpython-coveragepy-0be2f9b03ba669803910a9c5e72e9135ee7f9602.tar.gz
Fix a weird PyPy3 problem with a weird PyPy3 fix.
Diffstat (limited to 'coverage/execfile.py')
-rw-r--r--coverage/execfile.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/coverage/execfile.py b/coverage/execfile.py
index b7877b6..82cc221 100644
--- a/coverage/execfile.py
+++ b/coverage/execfile.py
@@ -138,6 +138,13 @@ def run_python_file(filename, args, package=None):
# so that the coverage.py code doesn't appear in the final printed
# traceback.
typ, err, tb = sys.exc_info()
+
+ # PyPy3 weirdness. If I don't access __context__, then somehow it
+ # is non-None when the exception is reported at the upper layer,
+ # and a nested exception is shown to the user. This getattr fixes
+ # it somehow? https://bitbucket.org/pypy/pypy/issue/1903
+ getattr(err, '__context__', None)
+
raise ExceptionDuringRun(typ, err, tb.tb_next)
finally:
# Restore the old __main__