From 29a4cbff92862207eb9df9a970b3636b8b06ff5d Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 6 Dec 2018 12:43:37 +0300 Subject: [2.7] bpo-33709: test_ntpath and test_posixpath fail in Windows with ACP!=1252. (GH-7278) (GH-7279) --- Lib/test/support/__init__.py | 8 ++++++-- Lib/test/test_posixpath.py | 6 ++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 23b7065..aaf0286 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -657,8 +657,12 @@ if have_unicode: unichr(0x20AC), ): try: - character.encode(sys.getfilesystemencoding())\ - .decode(sys.getfilesystemencoding()) + # In Windows, 'mbcs' is used, and encode() returns '?' + # for characters missing in the ANSI codepage + if character.encode(sys.getfilesystemencoding())\ + .decode(sys.getfilesystemencoding())\ + != character: + raise UnicodeError except UnicodeError: pass else: diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py index 0663a21..18ea2e4 100644 --- a/Lib/test/test_posixpath.py +++ b/Lib/test/test_posixpath.py @@ -496,12 +496,10 @@ class PosixPathTest(unittest.TestCase): finally: os.getcwd = real_getcwd - @test_support.requires_unicode + @unittest.skipUnless(test_support.FS_NONASCII, 'need test_support.FS_NONASCII') def test_expandvars_nonascii_word(self): encoding = sys.getfilesystemencoding() - # Non-ASCII word characters - letters = test_support.u(r'\xe6\u0130\u0141\u03c6\u041a\u05d0\u062a\u0e01') - uwnonascii = letters.encode(encoding, 'ignore').decode(encoding)[:3] + uwnonascii = test_support.FS_NONASCII swnonascii = uwnonascii.encode(encoding) if not swnonascii: self.skipTest('Needs non-ASCII word characters') -- cgit v0.12