[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