diff -r 19ed42e84030 Lib/test/test_multiprocessing.py --- a/Lib/test/test_multiprocessing.py Thu Oct 25 10:47:46 2012 +0100 +++ b/Lib/test/test_multiprocessing.py Thu Oct 25 13:06:20 2012 +0300 @@ -1642,6 +1642,28 @@ self.assertEqual(self.pool.starmap_async(mul, tuples).get(), list(itertools.starmap(mul, tuples))) + def test_map_async(self): + self.assertEqual(self.pool.map_async(sqr, list(range(10))).get(), + list(map(sqr, list(range(10))))) + + def create_list(self): + if self.TYPE == 'manager': + return self.manager.list() + else: + return [] + + def test_map_async_callback(self): + res = self.create_list() + self.pool.map_async(sqr, list(range(10)), + callback=res.append).wait() + self.assertIn(list(map(sqr, list(range(10)))), res) + + def test_map_async_error_callback(self): + err = self.create_list() + self.pool.map_async(int, ['a'], error_callback=err.append).wait() + self.assertEqual(len(err), 1) + self.assertIsInstance(err[0], ValueError) + def test_map_chunksize(self): try: self.pool.map_async(sqr, [], chunksize=1).get(timeout=TIMEOUT1)