]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merged manually from 2.7 branch to 3.x trunk.
authorFlorent Xicluna <florent.xicluna@gmail.com>
Sat, 14 Aug 2010 15:56:42 +0000 (15:56 +0000)
committerFlorent Xicluna <florent.xicluna@gmail.com>
Sat, 14 Aug 2010 15:56:42 +0000 (15:56 +0000)
  ------------------------------------------------------------------------
  r79925 | nick.coghlan | 2010-04-10 16:24:36 +0200 (sam. 10 avril 2010)

  Try to turn some buildbots green by allowing test_multiprocessing to
  pass even if it hits the sys.exc_clear code in the threading module, and
  improve the test coverage by making the ctypes dependencies a bit more
  granular (two of the cited ctypes objects don't exist on my system)
  ------------------------------------------------------------------------

Lib/test/test_multiprocessing.py

index 96df5023bc6a7196d92628708519af70ccf3dce9..73d12dc879827b0ddb3b863b5092d1268929c476 100644 (file)
@@ -13,7 +13,6 @@ import os
 import gc
 import signal
 import array
-import copy
 import socket
 import random
 import logging
@@ -71,11 +70,21 @@ WIN32 = (sys.platform == "win32")
 #
 
 try:
-    from ctypes import Structure, Value, copy, c_int, c_double
+    from ctypes import Structure, c_int, c_double
 except ImportError:
     Structure = object
     c_int = c_double = None
 
+try:
+    from ctypes import Value
+except ImportError:
+    Value = None
+
+try:
+    from ctypes import copy as ctypes_copy
+except ImportError:
+    ctypes_copy = None
+
 #
 # Creates a wrapper for a function which records the time it takes to finish
 #
@@ -1138,11 +1147,9 @@ def baz():
         yield i*i
 
 class IteratorProxy(BaseProxy):
-    _exposed_ = ('next', '__next__')
+    _exposed_ = ('__next__',)
     def __iter__(self):
         return self
-    def __next__(self):
-        return self._callmethod('next')
     def __next__(self):
         return self._callmethod('__next__')
 
@@ -1600,7 +1607,7 @@ class _TestSharedCTypes(BaseTestCase):
         for i in range(len(arr)):
             arr[i] *= 2
 
-    @unittest.skipIf(c_int is None, "requires _ctypes")
+    @unittest.skipIf(Value is None, "requires ctypes.Value")
     def test_sharedctypes(self, lock=False):
         x = Value('i', 7, lock=lock)
         y = Value(c_double, 1.0/3.0, lock=lock)
@@ -1621,13 +1628,14 @@ class _TestSharedCTypes(BaseTestCase):
             self.assertAlmostEqual(arr[i], i*2)
         self.assertEqual(string.value, latin('hellohello'))
 
+    @unittest.skipIf(Value is None, "requires ctypes.Value")
     def test_synchronize(self):
         self.test_sharedctypes(lock=True)
 
-    @unittest.skipIf(c_int is None, "requires _ctypes")
+    @unittest.skipIf(ctypes_copy is None, "requires ctypes.copy")
     def test_copy(self):
         foo = _Foo(2, 5.0)
-        bar = copy(foo)
+        bar = ctypes_copy(foo)
         foo.x = 0
         foo.y = 0
         self.assertEqual(bar.x, 2)