diff options
-rwxr-xr-x | Lib/tarfile.py | 16 | ||||
-rw-r--r-- | Lib/test/test_tarfile.py | 15 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 26 insertions, 8 deletions
diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 9e291c2..37e4dcd 100755 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -2491,16 +2491,16 @@ def main(): _, ext = os.path.splitext(tar_name) compressions = { # gz - 'gz': 'gz', - 'tgz': 'gz', + '.gz': 'gz', + '.tgz': 'gz', # xz - 'xz': 'xz', - 'txz': 'xz', + '.xz': 'xz', + '.txz': 'xz', # bz2 - 'bz2': 'bz2', - 'tbz': 'bz2', - 'tbz2': 'bz2', - 'tb2': 'bz2', + '.bz2': 'bz2', + '.tbz': 'bz2', + '.tbz2': 'bz2', + '.tb2': 'bz2', } tar_mode = 'w:' + compressions[ext] if ext in compressions else 'w' tar_files = args.create diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index e527e40..c135304 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -1994,6 +1994,21 @@ class CommandLineTest(unittest.TestCase): finally: support.unlink(tar_name) + def test_create_command_compressed(self): + files = [support.findfile('tokenize_tests.txt'), + support.findfile('tokenize_tests-no-coding-cookie-' + 'and-utf8-bom-sig-only.txt')] + for filetype in (GzipTest, Bz2Test, LzmaTest): + if not filetype.open: + continue + try: + tar_name = tmpname + '.' + filetype.suffix + out = self.tarfilecmd('-c', tar_name, *files) + with filetype.taropen(tar_name) as tar: + tar.getmembers() + finally: + support.unlink(tar_name) + def test_extract_command(self): self.make_simple_tarfile(tmpname) for opt in '-e', '--extract': @@ -13,8 +13,11 @@ Core and Builtins Library ------- +- Issue #23421: Fixed compression in tarfile CLI. Patch by wdv4758h. + - Issue #23361: Fix possible overflow in Windows subprocess creation code. + What's New in Python 3.4.3rc1? ============================== |