diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-23 12:57:42 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-23 12:57:42 (GMT) |
commit | 7fc92bb38a47f7da044847f8112e17201abf79bd (patch) | |
tree | cc6777e41b84afedcd4636c4a6046199a603dc69 | |
parent | 89ecb4ac1046397ae0fc09676adf90ef7a72ea95 (diff) | |
parent | 666de7772708047b63125126b0147931571254a4 (diff) | |
download | cpython-7fc92bb38a47f7da044847f8112e17201abf79bd.zip cpython-7fc92bb38a47f7da044847f8112e17201abf79bd.tar.gz cpython-7fc92bb38a47f7da044847f8112e17201abf79bd.tar.bz2 |
Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
-rw-r--r-- | Lib/shutil.py | 7 | ||||
-rw-r--r-- | Lib/test/test_shutil.py | 13 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 19 insertions, 3 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py index 9d193b5..90b7198 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -680,9 +680,10 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): 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 index 990fae5..d93efb8 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -1066,6 +1066,19 @@ class TestShutil(unittest.TestCase): 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') @@ -23,6 +23,8 @@ Core and Builtins 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 |