[pypy-commit] pypy py3.5: Improve error message

arigo pypy.commits at gmail.com
Fri Oct 14 05:27:42 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5
Changeset: r87773:1bc8b7459f16
Date: 2016-10-14 11:27 +0200
http://bitbucket.org/pypy/pypy/changeset/1bc8b7459f16/

Log:	Improve error message

diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -1375,7 +1375,8 @@
         except OperationError as err:
             if objdescr is None or not err.match(self, self.w_TypeError):
                 raise
-            raise oefmt(self.w_TypeError, "%s must be an integer, not %T",
+            raise oefmt(self.w_TypeError,
+                        "%s indices must be integers or slices, not %T",
                         objdescr, w_obj)
         try:
             # allow_conversion=False it's not really necessary because the
diff --git a/pypy/interpreter/test/test_objspace.py b/pypy/interpreter/test/test_objspace.py
--- a/pypy/interpreter/test/test_objspace.py
+++ b/pypy/interpreter/test/test_objspace.py
@@ -238,8 +238,8 @@
         try:
             self.space.getindex_w(self.space.w_tuple, None, "foobar")
         except OperationError as e:
-            assert e.match(self.space, self.space.w_TypeError)
-            assert "foobar" in e.errorstr(self.space)
+            assert e.errorstr(self.space) == (
+               "TypeError: foobar indices must be integers or slices, not type")
         else:
             assert 0, "should have raised"
 
diff --git a/pypy/objspace/std/bytearrayobject.py b/pypy/objspace/std/bytearrayobject.py
--- a/pypy/objspace/std/bytearrayobject.py
+++ b/pypy/objspace/std/bytearrayobject.py
@@ -358,8 +358,7 @@
             _setitem_slice_helper(space, self.data, start, step,
                                   slicelength, sequence2, empty_elem='\x00')
         else:
-            idx = space.getindex_w(w_index, space.w_IndexError,
-                                   "bytearray index")
+            idx = space.getindex_w(w_index, space.w_IndexError, "bytearray")
             try:
                 self.data[idx] = getbytevalue(space, w_other)
             except IndexError:
@@ -371,8 +370,7 @@
                                                             len(self.data))
             _delitem_slice_helper(space, self.data, start, step, slicelength)
         else:
-            idx = space.getindex_w(w_idx, space.w_IndexError,
-                                   "bytearray index")
+            idx = space.getindex_w(w_idx, space.w_IndexError, "bytearray")
             try:
                 del self.data[idx]
             except IndexError:
diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py
--- a/pypy/objspace/std/listobject.py
+++ b/pypy/objspace/std/listobject.py
@@ -561,7 +561,7 @@
             return self.getslice(start, stop, step, slicelength)
 
         try:
-            index = space.getindex_w(w_index, space.w_IndexError, "list index")
+            index = space.getindex_w(w_index, space.w_IndexError, "list")
             return self.getitem(index)
         except IndexError:
             raise oefmt(space.w_IndexError, "list index out of range")
@@ -578,7 +578,7 @@
                 self.setslice(start, step, slicelength, w_other)
             return
 
-        idx = space.getindex_w(w_index, space.w_IndexError, "list index")
+        idx = space.getindex_w(w_index, space.w_IndexError, "list")
         try:
             self.setitem(idx, w_any)
         except IndexError:
@@ -591,7 +591,7 @@
             self.deleteslice(start, step, slicelength)
             return
 
-        idx = space.getindex_w(w_idx, space.w_IndexError, "list index")
+        idx = space.getindex_w(w_idx, space.w_IndexError, "list")
         if idx < 0:
             idx += self.length()
         try:
diff --git a/pypy/objspace/std/stringmethods.py b/pypy/objspace/std/stringmethods.py
--- a/pypy/objspace/std/stringmethods.py
+++ b/pypy/objspace/std/stringmethods.py
@@ -130,7 +130,7 @@
                 ret = _descr_getslice_slowpath(selfvalue, start, step, sl)
                 return self._new_from_list(ret)
 
-        index = space.getindex_w(w_index, space.w_IndexError, "string index")
+        index = space.getindex_w(w_index, space.w_IndexError, "string")
         return self._getitem_result(space, index)
 
     def _getitem_result(self, space, index):
diff --git a/pypy/objspace/std/tupleobject.py b/pypy/objspace/std/tupleobject.py
--- a/pypy/objspace/std/tupleobject.py
+++ b/pypy/objspace/std/tupleobject.py
@@ -189,7 +189,7 @@
     def descr_getitem(self, space, w_index):
         if isinstance(w_index, W_SliceObject):
             return self._getslice(space, w_index)
-        index = space.getindex_w(w_index, space.w_IndexError, "tuple index")
+        index = space.getindex_w(w_index, space.w_IndexError, "tuple")
         return self.getitem(space, index)
 
     def _getslice(self, space, w_index):


More information about the pypy-commit mailing list