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

afa at codespeak.net afa at codespeak.net
Wed Oct 20 10:15:37 CEST 2010


Author: afa
Date: Wed Oct 20 10:15:35 2010
New Revision: 78106

Modified:
   pypy/branch/fast-forward/pypy/module/_io/interp_fileio.py
   pypy/branch/fast-forward/pypy/module/_io/test/test_fileio.py
Log:
FileIO.tell()


Modified: pypy/branch/fast-forward/pypy/module/_io/interp_fileio.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_io/interp_fileio.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_io/interp_fileio.py	Wed Oct 20 10:15:35 2010
@@ -241,6 +241,16 @@
         return space.wrap(pos)
 
     @unwrap_spec('self', ObjSpace)
+    def tell_w(self, space):
+        self._check_closed(space)
+        try:
+            pos = os.lseek(self.fd, 0, 1)
+        except OSError, e:
+            raise wrap_oserror(space, e,
+                               exception_name='w_IOError')
+        return space.wrap(pos)
+
+    @unwrap_spec('self', ObjSpace)
     def readable_w(self, space):
         self._check_closed(space)
         return space.wrap(self.readable)
@@ -344,6 +354,7 @@
     __init__  = interp2app(W_FileIO.descr_init),
 
     seek = interp2app(W_FileIO.seek_w),
+    tell = interp2app(W_FileIO.tell_w),
     write = interp2app(W_FileIO.write_w),
     read = interp2app(W_FileIO.read_w),
     readall = interp2app(W_FileIO.readall_w),

Modified: pypy/branch/fast-forward/pypy/module/_io/test/test_fileio.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_io/test/test_fileio.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_io/test/test_fileio.py	Wed Oct 20 10:15:35 2010
@@ -64,3 +64,10 @@
         f.seek(0)
         self.posix.close(f.fileno())
         raises(IOError, f.seek, 0)
+
+    def test_tell(self):
+        import _io
+        f = _io.FileIO(self.tmpfile, 'rb')
+        f.seek(3)
+        assert f.tell() == 3
+        f.close()



More information about the Pypy-commit mailing list