Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch: py3.6
Changeset: r97210:ba0a52e09be0
Date: 2019-08-18 13:03 +0200
http://bitbucket.org/pypy/pypy/changeset/ba0a52e09be0/
Log: ImportError exposes a .msg now
diff --git a/pypy/interpreter/pyparser/test/test_pyparse.py
b/pypy/interpreter/pyparser/test/test_pyparse.py
--- a/pypy/interpreter/pyparser/test/test_pyparse.py
+++ b/pypy/interpreter/pyparser/test/test_pyparse.py
@@ -389,6 +389,11 @@
info = py.test.raises(SyntaxError, self.parse, "def f:\n print 1")
assert "(expected '(')" in info.value.msg
+ def test_error_print_without_parens(self):
+ import pdb; pdb.set_trace()
+ info = py.test.raises(SyntaxError, self.parse, "print 1")
+ assert "Missing parentheses in call to 'print'" in info.value.msg
+
class TestPythonParserRevDB(TestPythonParser):
spaceconfig = {"translation.reverse_debugger": True}
diff --git a/pypy/module/exceptions/interp_exceptions.py
b/pypy/module/exceptions/interp_exceptions.py
--- a/pypy/module/exceptions/interp_exceptions.py
+++ b/pypy/module/exceptions/interp_exceptions.py
@@ -322,6 +322,7 @@
"""Import can't find module, or can't find name in module."""
w_name = None
w_path = None
+ w_msg = None
@jit.unroll_safe
def descr_init(self, space, __args__):
@@ -335,6 +336,10 @@
space.w_TypeError,
"'%s' is an invalid keyword argument for this
function",
keyword)
+ if len(args_w) == 1:
+ self.w_msg = args_w[0]
+ else:
+ self.w_msg = space.w_None
W_Exception.descr_init(self, space, args_w)
@@ -347,6 +352,7 @@
__init__ = interp2app(W_ImportError.descr_init),
name = readwrite_attrproperty_w('w_name', W_ImportError),
path = readwrite_attrproperty_w('w_path', W_ImportError),
+ msg = readwrite_attrproperty_w('w_msg', W_ImportError),
)
diff --git a/pypy/module/exceptions/test/test_exc.py
b/pypy/module/exceptions/test/test_exc.py
--- a/pypy/module/exceptions/test/test_exc.py
+++ b/pypy/module/exceptions/test/test_exc.py
@@ -298,6 +298,11 @@
assert ImportError("message", name="x").name == "x"
assert ImportError("message", path="y").path == "y"
raises(TypeError, ImportError, invalid="z")
+ assert ImportError("message").msg == "message"
+ assert ImportError("message").args == ("message", )
+ assert ImportError("message", "foo").msg is None
+ assert ImportError("message", "foo").args == ("message", "foo")
+
def test_modulenotfounderror(self):
assert ModuleNotFoundError("message").name is None
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit