changeset 74193:e3ba7e1dd406

merge heads
author Benjamin Peterson <benjamin@python.org>
date Wed, 28 Dec 2011 12:01:51 -0600
parents 0558a03b1bec (current diff) a7744f778646 (diff)
children cf57ef65bcd0 ac100a4e18b8
files
diffstat 1 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Lib/distutils/tests/test_archive_util.py
+++ b/Lib/distutils/tests/test_archive_util.py
@@ -2,6 +2,7 @@
 """Tests for distutils.archive_util."""
 import unittest
 import os
+import sys
 import tarfile
 from os.path import splitdrive
 import warnings
@@ -26,6 +27,18 @@ try:
 except ImportError:
     ZLIB_SUPPORT = False
 
+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,
@@ -36,6 +49,8 @@ class ArchiveUtilTestCase(support.Tempdi
         self._make_tarball('archive')
 
     @unittest.skipUnless(ZLIB_SUPPORT, 'Need zlib support to run')
+    @unittest.skipUnless(can_fs_encode('årchiv'),
+        'File system cannot handle this filename')
     def test_make_tarball_latin1(self):
         """
         Mirror test_make_tarball, except filename contains latin characters.
@@ -43,6 +58,8 @@ class ArchiveUtilTestCase(support.Tempdi
         self._make_tarball('årchiv') # note this isn't a real word
 
     @unittest.skipUnless(ZLIB_SUPPORT, 'Need zlib support to run')
+    @unittest.skipUnless(can_fs_encode('のアーカイブ'),
+        'File system cannot handle this filename')
     def test_make_tarball_extended(self):
         """
         Mirror test_make_tarball, except filename contains extended