diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-02-10 06:47:10 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-02-10 06:47:10 (GMT) |
commit | 4bdcfce5129fbf2d710046b4d3f9be636e9e0898 (patch) | |
tree | 4f4eb016460584352945779f7199fd68eb1728a2 | |
parent | 5ef01e9b93493a1ca8746b956a70972ef52b3791 (diff) | |
parent | 832dd5f0d65d3a0ebd7d7c7a3a4c80ab5170cd08 (diff) | |
download | cpython-4bdcfce5129fbf2d710046b4d3f9be636e9e0898.zip cpython-4bdcfce5129fbf2d710046b4d3f9be636e9e0898.tar.gz cpython-4bdcfce5129fbf2d710046b4d3f9be636e9e0898.tar.bz2 |
Issue #23421: Fixed compression in tarfile CLI. Patch by wdv4758h.
-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 4b4e0d3..06436eb 100755 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -2494,16 +2494,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 810b76b..ef71f5e 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -2006,6 +2006,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,12 +13,15 @@ Core and Builtins Library ------- +- Issue #23421: Fixed compression in tarfile CLI. Patch by wdv4758h. + - Issue #23361: Fix possible overflow in Windows subprocess creation code. - logging.handlers.QueueListener now takes a respect_handler_level keyword argument which, if set to True, will pass messages to handlers taking handler levels into account. + What's New in Python 3.5 alpha 1? ================================= |