bpo-36991: Fix incorrect exception escaping ZipFile.extract() (GH-13632)

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 sys
 import time
 import unittest
+import unittest.mock as mock
 import zipfile
 
 
@@ -1766,6 +1767,16 @@
                 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)