[pypy-svn] r58810 - in pypy/branch/2.5-merge/pypy/module/_file: . test

jlg at codespeak.net jlg at codespeak.net
Wed Oct 8 14:10:04 CEST 2008


Author: jlg
Date: Wed Oct  8 14:10:01 2008
New Revision: 58810

Modified:
   pypy/branch/2.5-merge/pypy/module/_file/interp_file.py
   pypy/branch/2.5-merge/pypy/module/_file/test/test_file_extra.py
Log:
__enter__() on a closed file raises ValueError - test and fix

Modified: pypy/branch/2.5-merge/pypy/module/_file/interp_file.py
==============================================================================
--- pypy/branch/2.5-merge/pypy/module/_file/interp_file.py	(original)
+++ pypy/branch/2.5-merge/pypy/module/_file/interp_file.py	Wed Oct  8 14:10:01 2008
@@ -86,6 +86,10 @@
         self.fdopenstream(stream, fd, mode, name)
 
     def direct___enter__(self):
+        if self.stream is None:
+            space = self.space
+            raise OperationError(space.w_ValueError,
+                                 space.wrap('I/O operation on closed file'))
         return self
 
     def direct___exit__(self, __args__):

Modified: pypy/branch/2.5-merge/pypy/module/_file/test/test_file_extra.py
==============================================================================
--- pypy/branch/2.5-merge/pypy/module/_file/test/test_file_extra.py	(original)
+++ pypy/branch/2.5-merge/pypy/module/_file/test/test_file_extra.py	Wed Oct  8 14:10:01 2008
@@ -561,6 +561,7 @@
         raises(ValueError, f.writelines, [])
         raises(ValueError, iter, f)
         raises(ValueError, f.xreadlines)
+        raises(ValueError, f.__enter__)
         f.close()     # accepted as a no-op
 
     def test_docstrings(self):



More information about the Pypy-commit mailing list