[pypy-svn] r49542 - in pypy/branch/pypy-interp-file/module/_file: . test

arigo at codespeak.net arigo at codespeak.net
Fri Dec 7 22:34:06 CET 2007


Author: arigo
Date: Fri Dec  7 22:34:05 2007
New Revision: 49542

Modified:
   pypy/branch/pypy-interp-file/module/_file/interp_file.py
   pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py
Log:
Two more checks for a closed file.


Modified: pypy/branch/pypy-interp-file/module/_file/interp_file.py
==============================================================================
--- pypy/branch/pypy-interp-file/module/_file/interp_file.py	(original)
+++ pypy/branch/pypy-interp-file/module/_file/interp_file.py	Fri Dec  7 22:34:05 2007
@@ -93,6 +93,7 @@
             stream.close()
 
     def direct_fileno(self):
+        self.getstream()    # check if the file is still open
         return self.fd
 
     def direct_flush(self):
@@ -200,6 +201,7 @@
     direct_xreadlines = direct___iter__
 
     def direct_isatty(self):
+        self.getstream()    # check if the file is still open
         return os.isatty(self.fd)
 
     # ____________________________________________________________

Modified: pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py
==============================================================================
--- pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py	(original)
+++ pypy/branch/pypy-interp-file/module/_file/test/test_file_extra.py	Fri Dec  7 22:34:05 2007
@@ -508,3 +508,23 @@
         ref().write('hello')
         assert f.tell() == 5
         f.close()
+
+    def test_ValueError(self):
+        fn = self.temptestfile
+        f = open(fn, 'wb')
+        f.close()
+        raises(ValueError, f.fileno)
+        raises(ValueError, f.flush)
+        raises(ValueError, f.isatty)
+        raises(ValueError, f.next)
+        raises(ValueError, f.read)
+        raises(ValueError, f.readline)
+        raises(ValueError, f.readlines)
+        raises(ValueError, f.seek, 0)
+        raises(ValueError, f.tell)
+        raises(ValueError, f.truncate)
+        raises(ValueError, f.write, "")
+        raises(ValueError, f.writelines, [])
+        raises(ValueError, iter, f)
+        raises(ValueError, f.xreadlines)
+        f.close()     # accepted as a no-op



More information about the Pypy-commit mailing list