diff options
author | R David Murray <rdmurray@bitdance.com> | 2013-03-07 18:16:47 -0500 |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2013-03-07 18:16:47 -0500 |
commit | d7fefe24a2289c2e077fc8d6703273d0dcb220bc (patch) | |
tree | f64cd20b6f37188146b27805dad42c7907a0a25e /Lib/distutils/tests/test_archive_util.py | |
parent | f0f272e28bdfa346c33bcacd4a78df4bbf837b67 (diff) | |
parent | c2051f1fa112c1dc2b28d65e597eda85cb2e56ea (diff) | |
download | cpython-d7fefe24a2289c2e077fc8d6703273d0dcb220bc.tar.gz |
Merge: PEP8 fixup on previous patch, remove unused imports in test_email.
Diffstat (limited to 'Lib/distutils/tests/test_archive_util.py')
-rw-r--r-- | Lib/distutils/tests/test_archive_util.py | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/Lib/distutils/tests/test_archive_util.py b/Lib/distutils/tests/test_archive_util.py index 8edfab49f8..1afdd46225 100644 --- a/Lib/distutils/tests/test_archive_util.py +++ b/Lib/distutils/tests/test_archive_util.py @@ -1,6 +1,8 @@ +# -*- coding: utf-8 -*- """Tests for distutils.archive_util.""" import unittest import os +import sys import tarfile from os.path import splitdrive import warnings @@ -25,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, @@ -32,6 +46,28 @@ class ArchiveUtilTestCase(support.TempdirManager, @unittest.skipUnless(ZLIB_SUPPORT, 'Need zlib support to run') def test_make_tarball(self): + 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. + """ + 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 + characters outside the latin charset. + """ + self._make_tarball('のアーカイブ') # japanese for archive + + def _make_tarball(self, target_name): # creating something to tar tmpdir = self.mkdtemp() self.write_file([tmpdir, 'file1'], 'xxx') @@ -43,7 +79,7 @@ class ArchiveUtilTestCase(support.TempdirManager, unittest.skipUnless(splitdrive(tmpdir)[0] == splitdrive(tmpdir2)[0], "Source and target should be on same drive") - base_name = os.path.join(tmpdir2, 'archive') + base_name = os.path.join(tmpdir2, target_name) # working with relative paths to avoid tar warnings old_dir = os.getcwd() @@ -58,7 +94,7 @@ class ArchiveUtilTestCase(support.TempdirManager, self.assertTrue(os.path.exists(tarball)) # trying an uncompressed one - base_name = os.path.join(tmpdir2, 'archive') + base_name = os.path.join(tmpdir2, target_name) old_dir = os.getcwd() os.chdir(tmpdir) try: |