[pypy-svn] r30221 - in pypy/dist/pypy/module/mmap: . test
rhymes at codespeak.net
rhymes at codespeak.net
Wed Jul 19 13:20:50 CEST 2006
Author: rhymes
Date: Wed Jul 19 13:20:47 2006
New Revision: 30221
Modified:
pypy/dist/pypy/module/mmap/interp_mmap.py
pypy/dist/pypy/module/mmap/test/test_mmap.py
Log:
read_byte()
Modified: pypy/dist/pypy/module/mmap/interp_mmap.py
==============================================================================
--- pypy/dist/pypy/module/mmap/interp_mmap.py (original)
+++ pypy/dist/pypy/module/mmap/interp_mmap.py Wed Jul 19 13:20:47 2006
@@ -188,13 +188,27 @@
if self._data:
libc.munmap(self._data, self._size)
close.unwrap_spec = ['self']
+
+ def read_byte(self):
+ self._check_valid()
+
+ if self._pos < self._size:
+ value = self._data[self._pos]
+ self._pos += 1
+ return self.space.wrap(value)
+ else:
+ raise OperationError(self.space.w_ValueError,
+ self.space.wrap("read byte out of range"))
+ read_byte.unwrap_spec = ['self']
_mmap.typedef = TypeDef("_mmap",
_to_str = interp2app(_mmap._to_str, unwrap_spec=_mmap._to_str.unwrap_spec),
_check_valid = interp2app(_mmap._check_valid,
unwrap_spec=_mmap._check_valid.unwrap_spec),
close = interp2app(_mmap.close, unwrap_spec=_mmap.close.unwrap_spec),
- )
+ read_byte = interp2app(_mmap.read_byte,
+ unwrap_spec=_mmap.read_byte.unwrap_spec),
+)
def _check_map_size(space, size):
if size < 0:
Modified: pypy/dist/pypy/module/mmap/test/test_mmap.py
==============================================================================
--- pypy/dist/pypy/module/mmap/test/test_mmap.py (original)
+++ pypy/dist/pypy/module/mmap/test/test_mmap.py Wed Jul 19 13:20:47 2006
@@ -85,13 +85,17 @@
m.close()
raises(ValueError, m._check_valid)
-# def test_read_byte(self):
-# self.f.write("c")
-# self.f.flush()
-# m = mmap(self.f.fileno(), 1)
-# assert m.read_byte() == "c"
-# py.test.raises(ValueError, m.read_byte)
-# m.close()
+ def test_read_byte(self):
+ from mmap import mmap
+ f = open("foo", "w+")
+
+ f.write("c")
+ f.flush()
+ m = mmap(f.fileno(), 1)
+ assert m.read_byte() == "c"
+ raises(ValueError, m.read_byte)
+ m.close()
+ f.close()
#
# def test_readline(self):
# self.f.seek(0)
More information about the Pypy-commit
mailing list