[pypy-commit] pypy py3.7: fix error msg

cfbolz pypy.commits at gmail.com
Fri Jan 31 16:48:43 EST 2020


Author: Carl Friedrich Bolz-Tereick <cfbolz at gmx.de>
Branch: py3.7
Changeset: r98619:4e018a19da74
Date: 2020-01-31 22:31 +0100
http://bitbucket.org/pypy/pypy/changeset/4e018a19da74/

Log:	fix error msg

diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -598,6 +598,8 @@
     left, right = specialnames
     op = getattr(operator, left)
     def comparison_impl(space, w_obj1, w_obj2):
+        w_orig_obj1 = w_obj1
+        w_orig_obj2 = w_obj2
         w_typ1 = space.type(w_obj1)
         w_typ2 = space.type(w_obj2)
         w_left_src, w_left_impl = space.lookup_in_type_where(w_typ1, left)
@@ -637,7 +639,7 @@
         # if we arrived here, they are unorderable
         raise oefmt(space.w_TypeError,
                     "'%s' not supported between instances of '%T' and '%T'",
-                    symbol, w_obj1, w_obj2)
+                    symbol, w_orig_obj1, w_orig_obj2)
 
     return func_with_new_name(comparison_impl, 'comparison_%s_impl'%left.strip('_'))
 
diff --git a/pypy/objspace/test/test_descroperation.py b/pypy/objspace/test/test_descroperation.py
--- a/pypy/objspace/test/test_descroperation.py
+++ b/pypy/objspace/test/test_descroperation.py
@@ -343,6 +343,19 @@
         raises(TypeError, "0.0 < zz()")
         raises(TypeError, "0j < zz()")
 
+    def test_correct_order_error_msg(self):
+        class A(object):
+            def __lt__(self, other):
+                return NotImplemented
+            __gt__ = __lt__
+
+        class B(A):
+            pass
+
+        with raises(TypeError) as e:
+            A() < B()
+        assert str(e.value) == "'<' not supported between instances of 'A' and 'B'"
+
     def test_equality_among_different_types(self):
         class A(object): pass
         class zz(object): pass


More information about the pypy-commit mailing list