[pypy-svn] rev 703 - in pypy/trunk/src/pypy/objspace/std: . test

mwh at codespeak.net mwh at codespeak.net
Thu May 29 17:42:12 CEST 2003


Author: mwh
Date: Thu May 29 17:42:12 2003
New Revision: 703

Modified:
   pypy/trunk/src/pypy/objspace/std/stringobject.py
   pypy/trunk/src/pypy/objspace/std/test/test_sliceobject.py
Log:
app-space string slice works; now we have both, which do we use?

also adds a couple tests to test_sliceobject, some disabled pending
getting ****ing exceptions working properly


Modified: pypy/trunk/src/pypy/objspace/std/stringobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/stringobject.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/stringobject.py	Thu May 29 17:42:12 2003
@@ -220,6 +220,8 @@
                              W_StringObject, W_IntObject)
 
 def getitem_str_slice(space, w_str, w_slice):
+#    return space.gethelper(applicationfile).call(
+#        "getitem_string_slice", [w_str, w_slice])
     w = space.wrap
     u = space.unwrap
     w_start, w_stop, w_step, w_sl = w_slice.indices(w(w_str._value.len))
@@ -233,8 +235,6 @@
     w_r = space.newlist(r)
     w_empty = space.newstring([])
     return w_empty.join(w_r)
-    return space.gethelper(applicationfile).call(
-        "getitem_string_slice", [w_str, w_slice])
 
 StdObjSpace.getitem.register(getitem_str_slice, 
                              W_StringObject, W_SliceObject)

Modified: pypy/trunk/src/pypy/objspace/std/test/test_sliceobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/test/test_sliceobject.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/test/test_sliceobject.py	Thu May 29 17:42:12 2003
@@ -18,7 +18,20 @@
         w_None = space.w_None
         w_slice = space.newslice(w_None, w_None, w_None)
         self.equal_indices(w_slice.indices(w(6)), (0, 6, 1, 6))
-        
+        w_slice = space.newslice(w(0), w(6), w(1))
+        self.equal_indices(w_slice.indices(w(6)), (0, 6, 1, 6))
+        w_slice = space.newslice(w_None, w_None, w(-1))
+        self.equal_indices(w_slice.indices(w(6)), (5, -1, -1, 6))
+
+    def XXXtest_indices_fail(self):
+        """ usual exception problems """
+        space = self.space
+        w = space.wrap
+        w_None = space.w_None
+        w_slice = space.newslice(w_None, w_None, w(0))
+        self.equal_indices(w_slice.indices(w(6)), (5, -1, -1, 6))
+        self.assertRaises_w(space.w_ValueError,
+                            w_slice.indices, w(10))
 
 if __name__ == '__main__':
     testsupport.main()


More information about the Pypy-commit mailing list