summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2017-02-04 14:38:11 -0800
committerSteve Dower <steve.dower@microsoft.com>2017-02-04 14:38:11 -0800
commit34dd8d03f4f431092f5bf3adb6a59b423f196a53 (patch)
tree175c25bfb77749c85186680485c123a18c22f29c /Lib
parentb2fa705fd3887c326e811c418469c784353027f4 (diff)
downloadcpython-34dd8d03f4f431092f5bf3adb6a59b423f196a53.tar.gz
Issue #29409: Implement PEP 529 for io.FileIO (Patch by Eryk Sun)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_fileio.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index 12f2f119b5..3da210ae19 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -9,7 +9,8 @@ from array import array
from weakref import proxy
from functools import wraps
-from test.support import TESTFN, check_warnings, run_unittest, make_bad_fd, cpython_only
+from test.support import (TESTFN, TESTFN_UNICODE, check_warnings, run_unittest,
+ make_bad_fd, cpython_only)
from collections import UserList
import _io # C implementation of io
@@ -432,6 +433,23 @@ class OtherFileTests:
finally:
os.unlink(TESTFN)
+ @unittest.skipIf(sys.getfilesystemencoding() != 'utf-8',
+ "test only works for utf-8 filesystems")
+ def testUtf8BytesOpen(self):
+ # Opening a UTF-8 bytes filename
+ try:
+ fn = TESTFN_UNICODE.encode("utf-8")
+ except UnicodeEncodeError:
+ self.skipTest('could not encode %r to utf-8' % TESTFN_UNICODE)
+ f = self.FileIO(fn, "w")
+ try:
+ f.write(b"abc")
+ f.close()
+ with open(TESTFN_UNICODE, "rb") as f:
+ self.assertEqual(f.read(), b"abc")
+ finally:
+ os.unlink(TESTFN_UNICODE)
+
def testConstructorHandlesNULChars(self):
fn_with_NUL = 'foo\0bar'
self.assertRaises(ValueError, self.FileIO, fn_with_NUL, 'w')