mirror of
				https://github.com/python/cpython.git
				synced 2025-10-27 19:54:38 +00:00 
			
		
		
		
	Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
This commit is contained in:
		
						commit
						7fc92bb38a
					
				
					 3 changed files with 19 additions and 3 deletions
				
			
		|  | @ -680,9 +680,10 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): | ||||||
|         with zipfile.ZipFile(zip_filename, "w", |         with zipfile.ZipFile(zip_filename, "w", | ||||||
|                              compression=zipfile.ZIP_DEFLATED) as zf: |                              compression=zipfile.ZIP_DEFLATED) as zf: | ||||||
|             path = os.path.normpath(base_dir) |             path = os.path.normpath(base_dir) | ||||||
|             zf.write(path, path) |             if path != os.curdir: | ||||||
|             if logger is not None: |                 zf.write(path, path) | ||||||
|                 logger.info("adding '%s'", path) |                 if logger is not None: | ||||||
|  |                     logger.info("adding '%s'", path) | ||||||
|             for dirpath, dirnames, filenames in os.walk(base_dir): |             for dirpath, dirnames, filenames in os.walk(base_dir): | ||||||
|                 for name in sorted(dirnames): |                 for name in sorted(dirnames): | ||||||
|                     path = os.path.normpath(os.path.join(dirpath, name)) |                     path = os.path.normpath(os.path.join(dirpath, name)) | ||||||
|  |  | ||||||
|  | @ -1064,6 +1064,19 @@ def test_make_zipfile(self): | ||||||
|         work_dir = os.path.dirname(tmpdir2) |         work_dir = os.path.dirname(tmpdir2) | ||||||
|         rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive') |         rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive') | ||||||
| 
 | 
 | ||||||
|  |         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): |         with support.change_cwd(work_dir): | ||||||
|             base_name = os.path.abspath(rel_base_name) |             base_name = os.path.abspath(rel_base_name) | ||||||
|             res = make_archive(rel_base_name, 'zip', root_dir, base_dir) |             res = make_archive(rel_base_name, 'zip', root_dir, base_dir) | ||||||
|  |  | ||||||
|  | @ -23,6 +23,8 @@ Core and Builtins | ||||||
| Library | 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 | - Issue #25953: re.sub() now raises an error for invalid numerical group | ||||||
|   reference in replacement template even if the pattern is not found in |   reference in replacement template even if the pattern is not found in | ||||||
|   the string.  Error message for invalid group reference now includes the |   the string.  Error message for invalid group reference now includes the | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka