mirror of
https://github.com/python/cpython.git
synced 2025-08-27 12:16:04 +00:00
Issue #29409: Implement PEP 529 for io.FileIO (Patch by Eryk Sun)
This commit is contained in:
parent
bf0fc39edb
commit
eacee98679
3 changed files with 35 additions and 18 deletions
|
@ -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')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue