Index: Lib/test/test_itertools.py =================================================================== --- Lib/test/test_itertools.py (revision 76004) +++ Lib/test/test_itertools.py (working copy) @@ -419,20 +419,22 @@ # with Undetected Error and Stop Iteration r1 = Repeater(1, 3, StopIteration) r2 = Repeater(2, 4, StopIteration) - def run(r1, r2): - result = [] - for i, j in izip_longest(r1, r2, fillvalue=0): - print(i, j) - result.append((i, j)) - return result - self.assertEqual(run(r1, r2), [(1,2), (1,2), (1,2), (0,2)]) + it = izip_longest(r1, r2, fillvalue=0) + self.assertEqual(it.next(), (1,2)) + self.assertEqual(it.next(), (1,2)) + self.assertEqual(it.next(), (1,2)) + self.assertEqual(it.next(), (0,2)) + self.assertRaises(StopIteration, it.next) # Formerly, the RuntimeError would be lost # and StopIteration would stop as expected r1 = Repeater(1, 3, RuntimeError) r2 = Repeater(2, 4, StopIteration) - mylist = lambda it: [v for v in it] - self.assertRaises(RuntimeError, mylist, izip_longest(r1, r2, fillvalue=0)) + it = izip_longest(r1, r2, fillvalue=0) + self.assertEqual(it.next(), (1,2)) + self.assertEqual(it.next(), (1,2)) + self.assertEqual(it.next(), (1,2)) + self.assertRaises(RuntimeError, it.next) def test_product(self): for args, result in [