[pypy-svn] r38714 - in pypy/dist/pypy/module/_file: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Tue Feb 13 16:43:15 CET 2007
Author: cfbolz
Date: Tue Feb 13 16:43:13 2007
New Revision: 38714
Modified:
pypy/dist/pypy/module/_file/app_file.py
pypy/dist/pypy/module/_file/test/test_file.py
Log:
check the argument types of read and readlines of files. This makes the failing
bz2 test pass, I hope.
Modified: pypy/dist/pypy/module/_file/app_file.py
==============================================================================
--- pypy/dist/pypy/module/_file/app_file.py (original)
+++ pypy/dist/pypy/module/_file/app_file.py Tue Feb 13 16:43:13 2007
@@ -87,6 +87,8 @@
may be returned, even if no size parameter was given."""
if self._closed:
raise ValueError('I/O operation on closed file')
+ if not isinstance(n, (int, long)):
+ raise TypeError("an integer is required")
if n < 0:
return self.stream.readall()
else:
@@ -107,6 +109,8 @@
Return an empty string at EOF."""
if self._closed:
raise ValueError('I/O operation on closed file')
+ if not isinstance(size, (int, long)):
+ raise TypeError("an integer is required")
if size < 0:
return self.stream.readline()
else:
Modified: pypy/dist/pypy/module/_file/test/test_file.py
==============================================================================
--- pypy/dist/pypy/module/_file/test/test_file.py (original)
+++ pypy/dist/pypy/module/_file/test/test_file.py Tue Feb 13 16:43:13 2007
@@ -16,12 +16,30 @@
finally:
f.close()
f = _file.file(self.temppath, "r")
+ raises(TypeError, f.read, None)
try:
s = f.read()
assert s == "foo"
finally:
f.close()
+ def test_readline(self):
+ import _file
+ f = _file.file(self.temppath, "w")
+ try:
+ f.write("foo\nbar\n")
+ finally:
+ f.close()
+ f = _file.file(self.temppath, "r")
+ raises(TypeError, f.readline, None)
+ try:
+ s = f.readline()
+ assert s == "foo\n"
+ s = f.readline()
+ assert s == "bar\n"
+ finally:
+ f.close()
+
def test_fdopen(self):
import _file, os
f = _file.file(self.temppath, "w")
More information about the Pypy-commit
mailing list