summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_multiprocessing.py
diff options
context:
space:
mode:
authorJesse Noller <jnoller@gmail.com>2009-04-02 05:17:26 (GMT)
committerJesse Noller <jnoller@gmail.com>2009-04-02 05:17:26 (GMT)
commit7152f6d9156a19a9f1b31e313d2c19d840dc089d (patch)
tree69d6b77c1daaa07f9c7a1aa950ed65ae713f504c /Lib/test/test_multiprocessing.py
parentd56bab47f1c8432f4d7d3b92d0b8f8320f369fb7 (diff)
downloadcpython-7152f6d9156a19a9f1b31e313d2c19d840dc089d.zip
cpython-7152f6d9156a19a9f1b31e313d2c19d840dc089d.tar.gz
cpython-7152f6d9156a19a9f1b31e313d2c19d840dc089d.tar.bz2
Add custom initializer argument to multiprocess.Manager*, courtesy of lekma
Diffstat (limited to 'Lib/test/test_multiprocessing.py')
-rw-r--r--Lib/test/test_multiprocessing.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 8ef2e2f..cbcb630 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -1831,7 +1831,37 @@ class OtherTest(unittest.TestCase):
multiprocessing.connection.answer_challenge,
_FakeConnection(), b'abc')
-testcases_other = [OtherTest, TestInvalidHandle]
+#
+# Test Manager.start()/Pool.__init__() initializer feature - see issue 5585
+#
+
+def initializer(ns):
+ ns.test += 1
+
+class TestInitializers(unittest.TestCase):
+ def setUp(self):
+ self.mgr = multiprocessing.Manager()
+ self.ns = self.mgr.Namespace()
+ self.ns.test = 0
+
+ def tearDown(self):
+ self.mgr.shutdown()
+
+ def test_manager_initializer(self):
+ m = multiprocessing.managers.SyncManager()
+ self.assertRaises(TypeError, m.start, 1)
+ m.start(initializer, (self.ns,))
+ self.assertEqual(self.ns.test, 1)
+ m.shutdown()
+
+ def test_pool_initializer(self):
+ self.assertRaises(TypeError, multiprocessing.Pool, initializer=1)
+ p = multiprocessing.Pool(1, initializer, (self.ns,))
+ p.close()
+ p.join()
+ self.assertEqual(self.ns.test, 1)
+
+testcases_other = [OtherTest, TestInvalidHandle, TestInitializers]
#
#