summaryrefslogtreecommitdiff
path: root/Lib/test/test_io.py
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-11-20 23:34:31 +0000
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-11-20 23:34:31 +0000
commit322656596abfd772b0573731a78676f4a16f2d34 (patch)
tree5e138ae18baa1dee3ff6fd9a823cfacc5e67d62b /Lib/test/test_io.py
parentad100c3acb566a8a9a6094a9ace96c6399fab394 (diff)
downloadcpython-git-322656596abfd772b0573731a78676f4a16f2d34.tar.gz
Fixed issue #4233.
Changed semantic of _fileio.FileIO's close() method on file objects with closefd=False. The file descriptor is still kept open but the file object behaves like a closed file. The FileIO object also got a new readonly attribute closefd. Approved by Barry Backport of r67106 from the py3k branch
Diffstat (limited to 'Lib/test/test_io.py')
-rw-r--r--Lib/test/test_io.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 378d994640..c9bd38ddff 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -272,6 +272,30 @@ class IOTest(unittest.TestCase):
self.assertRaises(ValueError, io.open, test_support.TESTFN, 'w',
closefd=False)
+ def testReadClosed(self):
+ with io.open(test_support.TESTFN, "w") as f:
+ f.write("egg\n")
+ with io.open(test_support.TESTFN, "r") as f:
+ file = io.open(f.fileno(), "r", closefd=False)
+ self.assertEqual(file.read(), "egg\n")
+ file.seek(0)
+ file.close()
+ self.assertRaises(ValueError, file.read)
+
+ def test_no_closefd_with_filename(self):
+ # can't use closefd in combination with a file name
+ self.assertRaises(ValueError,
+ io.open, test_support.TESTFN, "r", closefd=False)
+
+ def test_closefd_attr(self):
+ with io.open(test_support.TESTFN, "wb") as f:
+ f.write(b"egg\n")
+ with io.open(test_support.TESTFN, "r") as f:
+ self.assertEqual(f.buffer.raw.closefd, True)
+ file = io.open(f.fileno(), "r", closefd=False)
+ self.assertEqual(file.buffer.raw.closefd, False)
+
+
class MemorySeekTestMixin:
def testInit(self):