From: Victor Stinner Date: Thu, 3 Jan 2013 00:56:38 +0000 (+0100) Subject: (Merge 3.2) Issue #16218, #16414, #16444: Backport FS_NONASCII, X-Git-Tag: v3.3.1rc1~427 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=269b3ce40065afa3328953ec42657184da22f96b;p=python (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. --- 269b3ce40065afa3328953ec42657184da22f96b diff --cc Lib/test/test_genericpath.py index 3eadd5893c,60209235cf..08061fa81e --- a/Lib/test/test_genericpath.py +++ b/Lib/test/test_genericpath.py @@@ -308,23 -292,21 +308,24 @@@ class CommonTest(GenericTest) 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") - with support.temp_cwd(name): - self.test_abspath() + # Test non-ASCII, non-UTF8 bytes in the path. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + with support.temp_cwd(name): + self.test_abspath() def test_main():