diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py index 96df5023bc6..73d12dc8798 100644 --- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -13,7 +13,6 @@ import gc import signal import array -import copy import socket import random import logging @@ -71,11 +70,21 @@ def latin(s): # 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 @@ def _double(self, x, y, foo, arr, string): 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 @@ def test_sharedctypes(self, lock=False): 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)