diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2019-09-12 14:13:44 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@krypto.org> | 2019-09-12 14:13:44 (GMT) |
commit | 2f1b857562b0f1601c9019db74c29b7d7e21ac9f (patch) | |
tree | 09ba434a35ab308f400440d36aa5a1051d3785bb /Lib/test/test_zipfile.py | |
parent | 99b54d68172ad64ba3d0fdc0137f0df88c28ea2b (diff) | |
download | cpython-2f1b857562b0f1601c9019db74c29b7d7e21ac9f.zip cpython-2f1b857562b0f1601c9019db74c29b7d7e21ac9f.tar.gz cpython-2f1b857562b0f1601c9019db74c29b7d7e21ac9f.tar.bz2 |
bpo-36991: Fix incorrect exception escaping ZipFile.extract() (GH-13632)
Diffstat (limited to 'Lib/test/test_zipfile.py')
-rw-r--r-- | Lib/test/test_zipfile.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index 99d599e..f812188 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -9,6 +9,7 @@ import subprocess import sys import time import unittest +import unittest.mock as mock import zipfile @@ -1766,6 +1767,16 @@ class OtherTests(unittest.TestCase): fp.seek(0, os.SEEK_SET) self.assertEqual(fp.tell(), 0) + @requires_bz2 + def test_decompress_without_3rd_party_library(self): + data = b'PK\x05\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + zip_file = io.BytesIO(data) + with zipfile.ZipFile(zip_file, 'w', compression=zipfile.ZIP_BZIP2) as zf: + zf.writestr('a.txt', b'a') + with mock.patch('zipfile.bz2', None): + with zipfile.ZipFile(zip_file) as zf: + self.assertRaises(RuntimeError, zf.extract, 'a.txt') + def tearDown(self): unlink(TESTFN) unlink(TESTFN2) |