mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #8438: Remove reference to the missing "surrogateescape" encoding
error handler from the new IO library.
This commit is contained in:
parent
35b76027f9
commit
7c587bf53d
4 changed files with 30 additions and 6 deletions
|
@ -12,6 +12,7 @@ from functools import wraps
|
|||
|
||||
from test.test_support import TESTFN, check_warnings, run_unittest, make_bad_fd
|
||||
from test.test_support import py3k_bytes as bytes
|
||||
from test.script_helper import run_python
|
||||
|
||||
from _io import FileIO as _FileIO
|
||||
|
||||
|
@ -397,6 +398,25 @@ class OtherFileTests(unittest.TestCase):
|
|||
self.assertRaises(ValueError, _FileIO, "/some/invalid/name", "rt")
|
||||
self.assertEqual(w.warnings, [])
|
||||
|
||||
def test_surrogates(self):
|
||||
# Issue #8438: try to open a filename containing surrogates.
|
||||
# It should either fail because the file doesn't exist or the filename
|
||||
# can't be represented using the filesystem encoding, but not because
|
||||
# of a LookupError for the error handler "surrogateescape".
|
||||
filename = u'\udc80.txt'
|
||||
try:
|
||||
with _FileIO(filename):
|
||||
pass
|
||||
except (UnicodeEncodeError, IOError):
|
||||
pass
|
||||
# Spawn a separate Python process with a different "file system
|
||||
# default encoding", to exercise this further.
|
||||
env = dict(os.environ)
|
||||
env[b'LC_CTYPE'] = b'C'
|
||||
_, out = run_python('-c', 'import _io; _io.FileIO(%r)' % filename, env=env)
|
||||
if ('UnicodeEncodeError' not in out and
|
||||
'IOError: [Errno 2] No such file or directory' not in out):
|
||||
self.fail('Bad output: %r' % out)
|
||||
|
||||
def test_main():
|
||||
# Historically, these tests have been sloppy about removing TESTFN.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue