[pypy-svn] r79160 - in pypy/branch/fast-forward/pypy/module/_io: . test

afa at codespeak.net afa at codespeak.net
Tue Nov 16 18:22:40 CET 2010


Author: afa
Date: Tue Nov 16 18:22:38 2010
New Revision: 79160

Modified:
   pypy/branch/fast-forward/pypy/module/_io/interp_bufferedio.py
   pypy/branch/fast-forward/pypy/module/_io/test/test_bufferedio.py
Log:
add readable() &co to BufferedReader


Modified: pypy/branch/fast-forward/pypy/module/_io/interp_bufferedio.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_io/interp_bufferedio.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_io/interp_bufferedio.py	Tue Nov 16 18:22:38 2010
@@ -146,6 +146,21 @@
         self._check_init(space)
         return space.getattr(self.w_raw, space.wrap("closed"))
 
+    @unwrap_spec('self', ObjSpace)
+    def readable_w(self, space):
+        self._check_init(space)
+        return space.call_method(self.w_raw, "readable")
+
+    @unwrap_spec('self', ObjSpace)
+    def writable_w(self, space):
+        self._check_init(space)
+        return space.call_method(self.w_raw, "writable")
+
+    @unwrap_spec('self', ObjSpace)
+    def seekable_w(self, space):
+        self._check_init(space)
+        return space.call_method(self.w_raw, "seekable")
+
     def _readahead(self):
         if self.readable and self.read_end != -1:
             return self.read_end - self.pos
@@ -559,6 +574,9 @@
     read1 = interp2app(W_BufferedReader.read1_w),
 
     # from the mixin class
+    readable = interp2app(W_BufferedReader.readable_w),
+    writable = interp2app(W_BufferedReader.writable_w),
+    seekable = interp2app(W_BufferedReader.seekable_w),
     seek = interp2app(W_BufferedReader.seek_w),
     tell = interp2app(W_BufferedReader.tell_w),
     close = interp2app(W_BufferedReader.close_w),
@@ -720,6 +738,9 @@
     flush = interp2app(W_BufferedWriter.flush_w),
 
     # from the mixin class
+    readable = interp2app(W_BufferedWriter.readable_w),
+    writable = interp2app(W_BufferedWriter.writable_w),
+    seekable = interp2app(W_BufferedWriter.seekable_w),
     seek = interp2app(W_BufferedWriter.seek_w),
     tell = interp2app(W_BufferedWriter.tell_w),
     close = interp2app(W_BufferedWriter.close_w),
@@ -739,10 +760,11 @@
     def method_w(self, space, __args__):
         if writer:
             w_meth = space.getattr(self.w_writer, space.wrap(method))
-            return space.call_args(w_meth, __args__)
+            w_result = space.call_args(w_meth, __args__)
         if reader:
             w_meth = space.getattr(self.w_reader, space.wrap(method))
-            return space.call_args(w_meth, __args__)
+            w_result = space.call_args(w_meth, __args__)
+        return w_result
     return method_w
 
 class W_BufferedRWPair(W_BufferedIOBase):

Modified: pypy/branch/fast-forward/pypy/module/_io/test/test_bufferedio.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_io/test/test_bufferedio.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_io/test/test_bufferedio.py	Tue Nov 16 18:22:38 2010
@@ -210,6 +210,8 @@
         import _io
         pair = _io.BufferedRWPair(_io.BytesIO("abc"), _io.BytesIO())
         assert not pair.closed
+        assert pair.readable()
+        assert pair.writable()
         assert pair.read() == "abc"
         assert pair.write("abc") == 3
 



More information about the Pypy-commit mailing list