Issue #9819: don't try to encode TESTFN_UNICODE on Windows
mbcs (Windows default filesystem encoding) is now strict by default, and depending on the code page, TESTFN_UNICODE may not be encodable to bytes. Remove also unused "encoded" argument from _do_directory() method.
This commit is contained in:
parent
4039aff814
commit
ca6525afba
|
@ -8,9 +8,10 @@ import unittest
|
|||
from test.support import (run_unittest, rmtree,
|
||||
TESTFN_ENCODING, TESTFN_UNICODE, TESTFN_UNENCODABLE)
|
||||
|
||||
try:
|
||||
if not os.path.supports_unicode_filenames:
|
||||
try:
|
||||
TESTFN_UNICODE.encode(TESTFN_ENCODING)
|
||||
except (UnicodeError, TypeError):
|
||||
except (UnicodeError, TypeError):
|
||||
# Either the file system encoding is None, or the file name
|
||||
# cannot be encoded in the file system encoding.
|
||||
raise unittest.SkipTest("No Unicode filesystem semantics on this platform.")
|
||||
|
@ -90,7 +91,7 @@ class TestUnicodeFiles(unittest.TestCase):
|
|||
shutil.copy2(filename1, filename2 + ".new")
|
||||
os.unlink(filename1 + ".new")
|
||||
|
||||
def _do_directory(self, make_name, chdir_name, encoded):
|
||||
def _do_directory(self, make_name, chdir_name):
|
||||
cwd = os.getcwdb()
|
||||
if os.path.isdir(make_name):
|
||||
rmtree(make_name)
|
||||
|
@ -98,12 +99,8 @@ class TestUnicodeFiles(unittest.TestCase):
|
|||
try:
|
||||
os.chdir(chdir_name)
|
||||
try:
|
||||
if not encoded:
|
||||
cwd_result = os.getcwd()
|
||||
name_result = make_name
|
||||
else:
|
||||
cwd_result = os.getcwdb().decode(TESTFN_ENCODING)
|
||||
name_result = make_name.decode(TESTFN_ENCODING)
|
||||
|
||||
cwd_result = unicodedata.normalize("NFD", cwd_result)
|
||||
name_result = unicodedata.normalize("NFD", name_result)
|
||||
|
@ -155,12 +152,11 @@ class TestUnicodeFiles(unittest.TestCase):
|
|||
# Make dir with encoded, chdir with unicode, checkdir with encoded
|
||||
# (or unicode/encoded/unicode, etc
|
||||
ext = ".dir"
|
||||
self._do_directory(TESTFN_UNICODE+ext, TESTFN_UNICODE+ext, False)
|
||||
self._do_directory(TESTFN_UNICODE+ext, TESTFN_UNICODE+ext)
|
||||
# Our directory name that can't use a non-unicode name.
|
||||
if TESTFN_UNENCODABLE is not None:
|
||||
self._do_directory(TESTFN_UNENCODABLE+ext,
|
||||
TESTFN_UNENCODABLE+ext,
|
||||
False)
|
||||
TESTFN_UNENCODABLE+ext)
|
||||
|
||||
def test_main():
|
||||
run_unittest(__name__)
|
||||
|
|
Loading…
Reference in New Issue