(original) (raw)

changeset: 104663:72da53d3074b parent: 104659:94d34354bef1 parent: 104662:e93149fee04d user: Serhiy Storchaka storchaka@gmail.com date: Sun Oct 23 15:58:10 2016 +0300 files: Misc/NEWS description: Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive. diff -r 94d34354bef1 -r 72da53d3074b Lib/shutil.py --- a/Lib/shutil.py Sun Oct 23 15:41:36 2016 +0300 +++ b/Lib/shutil.py Sun Oct 23 15:58:10 2016 +0300 @@ -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 -r 94d34354bef1 -r 72da53d3074b Lib/test/test_shutil.py --- a/Lib/test/test_shutil.py Sun Oct 23 15:41:36 2016 +0300 +++ b/Lib/test/test_shutil.py Sun Oct 23 15:58:10 2016 +0300 @@ -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 -r 94d34354bef1 -r 72da53d3074b Misc/NEWS --- a/Misc/NEWS Sun Oct 23 15:41:36 2016 +0300 +++ b/Misc/NEWS Sun Oct 23 15:58:10 2016 +0300 @@ -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 /storchaka@gmail.com