[Python-checkins] cpython (2.7): Issue #12981: test_multiprocessing: catch ImportError when importing

charles-francois.natali python-checkins at python.org
Wed Sep 21 18:47:44 CEST 2011


http://hg.python.org/cpython/rev/c158eac8e951
changeset:   72441:c158eac8e951
branch:      2.7
parent:      72434:21e7a55cb943
user:        Charles-François Natali <neologix at free.fr>
date:        Wed Sep 21 18:44:49 2011 +0200
summary:
  Issue #12981: test_multiprocessing: catch ImportError when importing
multiprocessing.reduction, which may not be available (e.g. if the OS doesn't
support FD passing over Unix domain sockets).

files:
  Lib/test/test_multiprocessing.py |  15 +++++++++++++--
  1 files changed, 13 insertions(+), 2 deletions(-)


diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -33,7 +33,13 @@
 import multiprocessing.heap
 import multiprocessing.pool
 
-from multiprocessing import util, reduction
+from multiprocessing import util
+
+try:
+    from multiprocessing import reduction
+    HAS_REDUCTION = True
+except ImportError:
+    HAS_REDUCTION = False
 
 try:
     from multiprocessing.sharedctypes import Value, copy
@@ -1526,6 +1532,7 @@
         os.write(fd, data)
         os.close(fd)
 
+    @unittest.skipUnless(HAS_REDUCTION, "test needs multiprocessing.reduction")
     def test_fd_transfer(self):
         if self.TYPE != 'processes':
             self.skipTest("only makes sense with processes")
@@ -1543,6 +1550,7 @@
         with open(test_support.TESTFN, "rb") as f:
             self.assertEqual(f.read(), b"foo")
 
+    @unittest.skipUnless(HAS_REDUCTION, "test needs multiprocessing.reduction")
     @unittest.skipIf(sys.platform == "win32",
                      "test semantics don't make sense on Windows")
     @unittest.skipIf(MAXFD <= 256,
@@ -1578,6 +1586,7 @@
     def _send_data_without_fd(self, conn):
         os.write(conn.fileno(), b"\0")
 
+    @unittest.skipUnless(HAS_REDUCTION, "test needs multiprocessing.reduction")
     @unittest.skipIf(sys.platform == "win32", "doesn't make sense on Windows")
     def test_missing_fd_transfer(self):
         # Check that exception is raised when received data is not
@@ -1899,10 +1908,12 @@
             'multiprocessing', 'multiprocessing.connection',
             'multiprocessing.heap', 'multiprocessing.managers',
             'multiprocessing.pool', 'multiprocessing.process',
-            'multiprocessing.reduction',
             'multiprocessing.synchronize', 'multiprocessing.util'
             ]
 
+        if HAS_REDUCTION:
+            modules.append('multiprocessing.reduction')
+
         if c_int is not None:
             # This module requires _ctypes
             modules.append('multiprocessing.sharedctypes')

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list