[Python-checkins] cpython (merge 3.5 -> 3.6): Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
serhiy.storchaka
python-checkins at python.org
Sun Oct 23 08:58:55 EDT 2016
https://hg.python.org/cpython/rev/e93149fee04d
changeset: 104662:e93149fee04d
branch: 3.6
parent: 104654:a1975621bba2
parent: 104661:d4fce66ebe01
user: Serhiy Storchaka <storchaka at gmail.com>
date: Sun Oct 23 15:57:42 2016 +0300
summary:
Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
files:
Lib/shutil.py | 7 ++++---
Lib/test/test_shutil.py | 13 +++++++++++++
Misc/NEWS | 2 ++
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/Lib/shutil.py b/Lib/shutil.py
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -680,9 +680,10 @@
with zipfile.ZipFile(zip_filename, "w",
compression=zipfile.ZIP_DEFLATED) as zf:
path = os.path.normpath(base_dir)
- zf.write(path, path)
- if logger is not None:
- logger.info("adding '%s'", path)
+ if path != os.curdir:
+ zf.write(path, path)
+ if logger is not None:
+ logger.info("adding '%s'", path)
for dirpath, dirnames, filenames in os.walk(base_dir):
for name in sorted(dirnames):
path = os.path.normpath(os.path.join(dirpath, name))
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
@@ -1066,6 +1066,19 @@
with support.change_cwd(work_dir):
base_name = os.path.abspath(rel_base_name)
+ res = make_archive(rel_base_name, 'zip', root_dir)
+
+ self.assertEqual(res, base_name + '.zip')
+ self.assertTrue(os.path.isfile(res))
+ self.assertTrue(zipfile.is_zipfile(res))
+ with zipfile.ZipFile(res) as zf:
+ self.assertCountEqual(zf.namelist(),
+ ['dist/', 'dist/sub/', 'dist/sub2/',
+ 'dist/file1', 'dist/file2', 'dist/sub/file3',
+ 'outer'])
+
+ with support.change_cwd(work_dir):
+ base_name = os.path.abspath(rel_base_name)
res = make_archive(rel_base_name, 'zip', root_dir, base_dir)
self.assertEqual(res, base_name + '.zip')
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -23,6 +23,8 @@
Library
-------
+- Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
+
- Issue #25953: re.sub() now raises an error for invalid numerical group
reference in replacement template even if the pattern is not found in
the string. Error message for invalid group reference now includes the
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list