[Python-checkins] cpython (2.7): Issue #21280: Fixed a bug in shutil.make_archive() when create an archive of
serhiy.storchaka
python-checkins at python.org
Thu Nov 27 23:53:12 CET 2014
https://hg.python.org/cpython/rev/c7d45da654ee
changeset: 93635:c7d45da654ee
branch: 2.7
parent: 93630:50808dffd0bb
user: Serhiy Storchaka <storchaka at gmail.com>
date: Fri Nov 28 00:50:06 2014 +0200
summary:
Issue #21280: Fixed a bug in shutil.make_archive() when create an archive of
current directory in current directory.
files:
Lib/shutil.py | 4 ++--
Lib/test/test_shutil.py | 23 +++++++++++++++++++++++
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/Lib/shutil.py b/Lib/shutil.py
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -362,7 +362,7 @@
archive_name = base_name + '.tar' + compress_ext.get(compress, '')
archive_dir = os.path.dirname(archive_name)
- if not os.path.exists(archive_dir):
+ if archive_dir and not os.path.exists(archive_dir):
if logger is not None:
logger.info("creating %s", archive_dir)
if not dry_run:
@@ -426,7 +426,7 @@
zip_filename = base_name + ".zip"
archive_dir = os.path.dirname(base_name)
- if not os.path.exists(archive_dir):
+ if archive_dir and not os.path.exists(archive_dir):
if logger is not None:
logger.info("creating %s", archive_dir)
if not dry_run:
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -581,6 +581,29 @@
finally:
unregister_archive_format('xxx')
+ def test_make_tarfile_in_curdir(self):
+ # Issue #21280
+ root_dir = self.mkdtemp()
+ saved_dir = os.getcwd()
+ try:
+ os.chdir(root_dir)
+ self.assertEqual(make_archive('test', 'tar'), 'test.tar')
+ self.assertTrue(os.path.isfile('test.tar'))
+ finally:
+ os.chdir(saved_dir)
+
+ @unittest.skipUnless(zlib, "Requires zlib")
+ def test_make_zipfile_in_curdir(self):
+ # Issue #21280
+ root_dir = self.mkdtemp()
+ saved_dir = os.getcwd()
+ try:
+ os.chdir(root_dir)
+ self.assertEqual(make_archive('test', 'zip'), 'test.zip')
+ self.assertTrue(os.path.isfile('test.zip'))
+ finally:
+ os.chdir(saved_dir)
+
def test_register_archive_format(self):
self.assertRaises(TypeError, register_archive_format, 'xxx', 1)
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list