summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_fileio.py
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2017-02-04 22:38:11 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2017-02-04 22:38:11 (GMT)
commiteacee98679f324fca16852871e76f7be3a685b7c (patch)
treebb911295a4cbe8f7ed56a85de3445f2c1f7c913e /Lib/test/test_fileio.py
parentbf0fc39edb87c71ec1c4ef8353f8d72bb7bb9d1b (diff)
downloadcpython-eacee98679f324fca16852871e76f7be3a685b7c.zip
cpython-eacee98679f324fca16852871e76f7be3a685b7c.tar.gz
cpython-eacee98679f324fca16852871e76f7be3a685b7c.tar.bz2
Issue #29409: Implement PEP 529 for io.FileIO (Patch by Eryk Sun)
Diffstat (limited to 'Lib/test/test_fileio.py')
-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 12f2f11..3da210a 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')