bpo-37976: Prevent shadowing of TypeError in zip() (GH-15592) (GH-15608)

(cherry picked from commit 6a650aaf7735e30636db2721247f317064c2cfd4)

Co-authored-by: Sergey Fedoseev <fedoseev.sergey@gmail.com>
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 6115579..1100c49 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -1477,6 +1477,18 @@
             z1 = zip(a, b)
             self.check_iter_pickle(z1, t, proto)
 
+    def test_zip_bad_iterable(self):
+        exception = TypeError()
+
+        class BadIterable:
+            def __iter__(self):
+                raise exception
+
+        with self.assertRaises(TypeError) as cm:
+            zip(BadIterable())
+
+        self.assertIs(cm.exception, exception)
+
     def test_format(self):
         # Test the basic machinery of the format() builtin.  Don't test
         #  the specifics of the various formatters