]> granicus.if.org Git - python/commitdiff
Issue #26523: The multiprocessing thread pool (multiprocessing.dummy.Pool) was untested.
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 15 Mar 2016 09:48:28 +0000 (10:48 +0100)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 15 Mar 2016 09:48:28 +0000 (10:48 +0100)
Lib/test/_test_multiprocessing.py
Misc/NEWS

index e9120abe5d9cc6e45031441cab1f720f64b9f2b2..1bbbd0b47ffceb707ffe21eb241d72ba96afd157 100644 (file)
@@ -1818,13 +1818,19 @@ class _TestPool(BaseTestCase):
                 expected_values.remove(value)
 
     def test_make_pool(self):
-        self.assertRaises(ValueError, multiprocessing.Pool, -1)
-        self.assertRaises(ValueError, multiprocessing.Pool, 0)
+        expected_error = (RemoteError if self.TYPE == 'manager'
+                          else ValueError)
 
-        p = multiprocessing.Pool(3)
-        self.assertEqual(3, len(p._pool))
-        p.close()
-        p.join()
+        self.assertRaises(expected_error, self.Pool, -1)
+        self.assertRaises(expected_error, self.Pool, 0)
+
+        if self.TYPE != 'manager':
+            p = self.Pool(3)
+            try:
+                self.assertEqual(3, len(p._pool))
+            finally:
+                p.close()
+                p.join()
 
     def test_terminate(self):
         result = self.pool.map_async(
@@ -1833,7 +1839,8 @@ class _TestPool(BaseTestCase):
         self.pool.terminate()
         join = TimingWrapper(self.pool.join)
         join()
-        self.assertLess(join.elapsed, 0.5)
+        # Sanity check the pool didn't wait for all tasks to finish
+        self.assertLess(join.elapsed, 2.0)
 
     def test_empty_iterable(self):
         # See Issue 12157
@@ -1851,7 +1858,7 @@ class _TestPool(BaseTestCase):
         if self.TYPE == 'processes':
             L = list(range(10))
             expected = [sqr(i) for i in L]
-            with multiprocessing.Pool(2) as p:
+            with self.Pool(2) as p:
                 r = p.map_async(sqr, L)
                 self.assertEqual(r.get(), expected)
             self.assertRaises(ValueError, p.map_async, sqr, L)
@@ -3834,7 +3841,7 @@ class ThreadsMixin(object):
     connection = multiprocessing.dummy.connection
     current_process = staticmethod(multiprocessing.dummy.current_process)
     active_children = staticmethod(multiprocessing.dummy.active_children)
-    Pool = staticmethod(multiprocessing.Pool)
+    Pool = staticmethod(multiprocessing.dummy.Pool)
     Pipe = staticmethod(multiprocessing.dummy.Pipe)
     Queue = staticmethod(multiprocessing.dummy.Queue)
     JoinableQueue = staticmethod(multiprocessing.dummy.JoinableQueue)
index 803924a81c9d68b9df4d75028212f5168d971680..9cb7f8c041fe666cb2053a5b3f2240513310e3a1 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -298,6 +298,9 @@ Documentation
 Tests
 -----
 
+- Issue #26523: The multiprocessing thread pool (multiprocessing.dummy.Pool)
+  was untested.
+
 - Issue #26015: Added new tests for pickling iterators of mutable sequences.
 
 - Issue #26325: Added test.support.check_no_resource_warning() to check that