changeset: 81261:4d40c1ce8566 branch: 3.3 parent: 81258:5bb289e4fb35 parent: 81260:41658a4fb3cc user: Victor Stinner date: Thu Jan 03 01:56:38 2013 +0100 files: Lib/test/support.py Lib/test/test_cmd_line.py Lib/test/test_cmd_line_script.py Lib/test/test_genericpath.py Lib/test/test_os.py description: (Merge 3.2) Issue #16218, #16414, #16444: Backport FS_NONASCII, TESTFN_UNDECODABLE, TESTFN_NONASCII of test.support from Python 3.4. Backport tests on non-ASCII paths. diff -r 5bb289e4fb35 -r 4d40c1ce8566 Lib/test/support.py --- a/Lib/test/support.py Thu Jan 03 01:21:07 2013 +0100 +++ b/Lib/test/support.py Thu Jan 03 01:56:38 2013 +0100 @@ -710,6 +710,9 @@ b'\xae\xd5' # undecodable from UTF-8 (UNIX and Mac OS X) b'\xed\xb2\x80', b'\xed\xb4\x80', + # undecodable from shift_jis, cp869, cp874, cp932, cp1250, cp1251, cp1252, + # cp1253, cp1254, cp1255, cp1257, cp1258 + b'\x81\x98', ): try: name.decode(TESTFN_ENCODING) diff -r 5bb289e4fb35 -r 4d40c1ce8566 Lib/test/test_cmd_line_script.py --- a/Lib/test/test_cmd_line_script.py Thu Jan 03 01:21:07 2013 +0100 +++ b/Lib/test/test_cmd_line_script.py Thu Jan 03 01:56:38 2013 +0100 @@ -367,11 +367,10 @@ # Mac OS X denies the creation of a file with an invalid UTF-8 name. # Windows allows to create a name with an arbitrary bytes name, but # Python cannot a undecodable bytes argument to a subprocess. - #if (support.TESTFN_UNDECODABLE - #and sys.platform not in ('win32', 'darwin')): - # name = os.fsdecode(support.TESTFN_UNDECODABLE) - #elif support.TESTFN_NONASCII: - if support.TESTFN_NONASCII: + if (support.TESTFN_UNDECODABLE + and sys.platform not in ('win32', 'darwin')): + name = os.fsdecode(support.TESTFN_UNDECODABLE) + elif support.TESTFN_NONASCII: name = support.TESTFN_NONASCII else: self.skipTest("need support.TESTFN_NONASCII") diff -r 5bb289e4fb35 -r 4d40c1ce8566 Lib/test/test_genericpath.py --- a/Lib/test/test_genericpath.py Thu Jan 03 01:21:07 2013 +0100 +++ b/Lib/test/test_genericpath.py Thu Jan 03 01:56:38 2013 +0100 @@ -308,17 +308,18 @@ for path in ('', 'fuu', 'f\xf9\xf9', '/fuu', 'U:\\'): self.assertIsInstance(abspath(path), str) - @unittest.skipIf(sys.platform == 'darwin', - "Mac OS X denies the creation of a directory with an invalid utf8 name") def test_nonascii_abspath(self): - name = b'\xe7w\xf0' - if sys.platform == 'win32': - try: - os.fsdecode(name) - except UnicodeDecodeError: - self.skipTest("the filename %a is not decodable " - "from the ANSI code page %s" - % (name, sys.getfilesystemencoding())) + if (support.TESTFN_UNDECODABLE + # Mac OS X denies the creation of a directory with an invalid + # UTF-8 name. Windows allows to create a directory with an + # arbitrary bytes name, but fails to enter this directory + # (when the bytes name is used). + and sys.platform not in ('win32', 'darwin')): + name = support.TESTFN_UNDECODABLE + elif support.TESTFN_NONASCII: + name = support.TESTFN_NONASCII + else: + self.skipTest("need support.TESTFN_NONASCII") # Test non-ASCII, non-UTF8 bytes in the path. with warnings.catch_warnings():

AltStyle によって変換されたページ (->オリジナル) /