changeset: 74191:9b681e0c04ed branch: 2.7 parent: 74185:e71e4bd45c89 user: Jason R. Coombs date: Wed Dec 28 11:42:22 2011 -0500 files: Lib/distutils/tests/test_archive_util.py description: Limit test scope to those platforms that can save the target filenames. Reference #11638. diff -r e71e4bd45c89 -r 9b681e0c04ed Lib/distutils/tests/test_archive_util.py --- a/Lib/distutils/tests/test_archive_util.py Tue Dec 27 15:16:34 2011 -0600 +++ b/Lib/distutils/tests/test_archive_util.py Wed Dec 28 11:42:22 2011 -0500 @@ -4,6 +4,7 @@ import unittest import os +import sys import tarfile from os.path import splitdrive import warnings @@ -34,6 +35,18 @@ except ImportError: zlib = None +def can_fs_encode(filename): + """ + Return True if the filename can be saved in the file system. + """ + if os.path.supports_unicode_filenames: + return True + try: + filename.encode(sys.getfilesystemencoding()) + except UnicodeEncodeError: + return False + return True + class ArchiveUtilTestCase(support.TempdirManager, support.LoggingSilencer, @@ -289,6 +302,8 @@ self._make_tarball(u'archive') @unittest.skipUnless(zlib, "requires zlib") + @unittest.skipUnless(can_fs_encode(u'årchiv'), + 'File system cannot handle this filename') def test_make_tarball_unicode_latin1(self): """ Mirror test_make_tarball, except filename is unicode and contains @@ -297,6 +312,8 @@ self._make_tarball(u'årchiv') # note this isn't a real word @unittest.skipUnless(zlib, "requires zlib") + @unittest.skipUnless(can_fs_encode(u'のアーカイブ'), + 'File system cannot handle this filename') def test_make_tarball_unicode_extended(self): """ Mirror test_make_tarball, except filename is unicode and contains

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