[pypy-commit] pypy default: Be more informative, just because we can

arigo pypy.commits at gmail.com
Wed Mar 27 07:37:21 EDT 2019


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r96360:fa16b2515a57
Date: 2019-03-27 12:36 +0100
http://bitbucket.org/pypy/pypy/changeset/fa16b2515a57/

Log:	Be more informative, just because we can

diff --git a/pypy/module/array/interp_array.py b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -721,7 +721,8 @@
             except OperationError as e:
                 if not e.match(space, space.w_ValueError):
                     raise
-                r = '<character out of range>'
+                w_exc_value = e.get_w_value(space)
+                r = "<%s>" % (space.str_w(w_exc_value),)
             else:
                 r = space.text_w(space.repr(w_unicode))
             s = "array('%s', %s)" % (self.typecode, r)
diff --git a/pypy/module/array/test/test_array.py b/pypy/module/array/test/test_array.py
--- a/pypy/module/array/test/test_array.py
+++ b/pypy/module/array/test/test_array.py
@@ -853,7 +853,8 @@
         b.byteswap()
         assert a != b
         assert str(a) == "array('u', %r)" % (input_unicode,)
-        assert str(b) == "array('u', <character out of range>)"
+        assert str(b) == ("array('u', <character U+1000000 is not in"
+                          " range [U+0000; U+10ffff]>)")
         assert a.tounicode() == input_unicode
         raises(ValueError, b.tounicode)   # doesn't work
 


More information about the pypy-commit mailing list