summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2013-09-04 18:46:33 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2013-09-04 18:46:33 (GMT)
commite93b63b74b101c65807af7d9311de70012a2e49d (patch)
tree9add8e90484b309ab34081c03c05faa19624a61b /Lib
parentc9e1dcdd5323b11d1d4e901dbc74287a2672bc04 (diff)
downloadcpython-e93b63b74b101c65807af7d9311de70012a2e49d.zip
cpython-e93b63b74b101c65807af7d9311de70012a2e49d.tar.gz
cpython-e93b63b74b101c65807af7d9311de70012a2e49d.tar.bz2
Issue #18876: The FileIO.mode attribute now better reflects the actual mode under which the file was opened.
Patch by Erik Bray.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_fileio.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index 19737d9..f91ccaa 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -304,7 +304,7 @@ class OtherFileTests(unittest.TestCase):
finally:
os.unlink(TESTFN)
- def testModeStrings(self):
+ def testInvalidModeStrings(self):
# check invalid mode strings
for mode in ("", "aU", "wU+", "rw", "rt"):
try:
@@ -315,6 +315,21 @@ class OtherFileTests(unittest.TestCase):
f.close()
self.fail('%r is an invalid file mode' % mode)
+ def testModeStrings(self):
+ # test that the mode attribute is correct for various mode strings
+ # given as init args
+ try:
+ for modes in [('w', 'wb'), ('wb', 'wb'), ('wb+', 'rb+'),
+ ('w+b', 'rb+'), ('a', 'ab'), ('ab', 'ab'),
+ ('ab+', 'ab+'), ('a+b', 'ab+'), ('r', 'rb'),
+ ('rb', 'rb'), ('rb+', 'rb+'), ('r+b', 'rb+')]:
+ # read modes are last so that TESTFN will exist first
+ with _FileIO(TESTFN, modes[0]) as f:
+ self.assertEqual(f.mode, modes[1])
+ finally:
+ if os.path.exists(TESTFN):
+ os.unlink(TESTFN)
+
def testUnicodeOpen(self):
# verify repr works for unicode too
f = _FileIO(str(TESTFN), "w")