]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-94808: Coverage: Check picklablability of calliter (#95923)
authorMichael Droettboom <mdboom@gmail.com>
Mon, 3 Oct 2022 20:50:30 +0000 (16:50 -0400)
committerGitHub <noreply@github.com>
Mon, 3 Oct 2022 20:50:30 +0000 (13:50 -0700)
Lib/test/test_iter.py

index 554f602f6252c00aa05e6e63a13d0456fb19febb..acbdcb5f302060f4c27ef295079539fc5085979a 100644 (file)
@@ -81,6 +81,16 @@ class BadIterableClass:
     def __iter__(self):
         raise ZeroDivisionError
 
+class CallableIterClass:
+    def __init__(self):
+        self.i = 0
+    def __call__(self):
+        i = self.i
+        self.i = i + 1
+        if i > 100:
+            raise IndexError # Emergency stop
+        return i
+
 # Main test suite
 
 class TestCase(unittest.TestCase):
@@ -237,16 +247,7 @@ class TestCase(unittest.TestCase):
 
     # Test two-argument iter() with callable instance
     def test_iter_callable(self):
-        class C:
-            def __init__(self):
-                self.i = 0
-            def __call__(self):
-                i = self.i
-                self.i = i + 1
-                if i > 100:
-                    raise IndexError # Emergency stop
-                return i
-        self.check_iterator(iter(C(), 10), list(range(10)), pickle=False)
+        self.check_iterator(iter(CallableIterClass(), 10), list(range(10)), pickle=True)
 
     # Test two-argument iter() with function
     def test_iter_function(self):