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

Reply via email to