summaryrefslogtreecommitdiff
path: root/Lib/test/test_fileio.py
diff options
context:
space:
mode:
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 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')