[Python-checkins] cpython (merge 3.6 -> default): 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/72da53d3074b
changeset: 104663:72da53d3074b
parent: 104659:94d34354bef1
parent: 104662:e93149fee04d
user: Serhiy Storchaka <storchaka at gmail.com>
date: Sun Oct 23 15:58:10 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
@@ -16,6 +16,8 @@
- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception
loss in PyTraceBack_Here().
+- 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