]> granicus.if.org Git - python/commitdiff
(Merge 3.2) Issue #16218, #16414, #16444: Backport FS_NONASCII,
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 3 Jan 2013 00:56:38 +0000 (01:56 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Thu, 3 Jan 2013 00:56:38 +0000 (01:56 +0100)
TESTFN_UNDECODABLE, TESTFN_NONASCII of test.support from Python 3.4. Backport
tests on non-ASCII paths.

1  2 
Lib/test/support.py
Lib/test/test_cmd_line_script.py
Lib/test/test_genericpath.py

Simple merge
Simple merge
index 3eadd5893c4cf57fda69ecfa1413abbd6616ce0d,60209235cf3d342e8bf2b48807539efd31f181a5..08061fa81eff6cff2881ed5c48cb5ba3c06fd832
@@@ -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():