Issue #23713: Fixed fragility of test_imap_unordered_handle_iterable_exception.
Patch by Davin Potts.
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 681529f..c66727c 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -1219,17 +1219,23 @@
it = self.pool.imap_unordered(sqr,
exception_throwing_generator(10, 3),
1)
+ expected_values = map(sqr, range(10))
with self.assertRaises(SayWhenError):
# imap_unordered makes it difficult to anticipate the SayWhenError
for i in range(10):
- self.assertEqual(next(it), i*i)
+ value = next(it)
+ self.assertIn(value, expected_values)
+ expected_values.remove(value)
it = self.pool.imap_unordered(sqr,
exception_throwing_generator(20, 7),
2)
+ expected_values = map(sqr, range(20))
with self.assertRaises(SayWhenError):
for i in range(20):
- self.assertEqual(next(it), i*i)
+ value = next(it)
+ self.assertIn(value, expected_values)
+ expected_values.remove(value)
def test_make_pool(self):
self.assertRaises(ValueError, multiprocessing.Pool, -1)