From b95de96268b334f9ec0aa70bd038f3603bf19421 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 14 Jun 2023 05:34:11 +0200 Subject: [PATCH] gh-105751: test_ctypes avoids "from ctypes import *" (#105768) Using "import *" prevents linters like pyflakes to detect undefined names (usually missing imports). Replace c_voidp with c_void_p. --- Lib/ctypes/_endian.py | 2 +- Lib/test/test_ctypes/test_anon.py | 2 +- Lib/test/test_ctypes/test_array_in_pointer.py | 2 +- Lib/test/test_ctypes/test_arrays.py | 5 ++++- Lib/test/test_ctypes/test_as_parameter.py | 10 +++++++--- Lib/test/test_ctypes/test_bitfields.py | 6 +++++- Lib/test/test_ctypes/test_buffers.py | 3 ++- Lib/test/test_ctypes/test_bytes.py | 4 ++-- Lib/test/test_ctypes/test_byteswap.py | 8 +++++++- Lib/test/test_ctypes/test_callbacks.py | 7 ++++++- Lib/test/test_ctypes/test_cast.py | 10 ++++++---- Lib/test/test_ctypes/test_cfuncs.py | 12 +++++++----- Lib/test/test_ctypes/test_checkretval.py | 9 ++++++--- Lib/test/test_ctypes/test_delattr.py | 5 ++++- Lib/test/test_ctypes/test_errno.py | 6 ++++-- Lib/test/test_ctypes/test_find.py | 11 +++++++---- Lib/test/test_ctypes/test_frombuffer.py | 2 +- Lib/test/test_ctypes/test_funcptr.py | 13 ++++++++----- Lib/test/test_ctypes/test_functions.py | 6 +++++- Lib/test/test_ctypes/test_incomplete.py | 2 +- Lib/test/test_ctypes/test_init.py | 5 ++++- Lib/test/test_ctypes/test_internals.py | 2 +- Lib/test/test_ctypes/test_keeprefs.py | 2 +- Lib/test/test_ctypes/test_libc.py | 7 +++++-- Lib/test/test_ctypes/test_loading.py | 10 +++++----- Lib/test/test_ctypes/test_memfunctions.py | 6 +++++- Lib/test/test_ctypes/test_numbers.py | 6 ++++-- Lib/test/test_ctypes/test_objects.py | 2 +- Lib/test/test_ctypes/test_pep3118.py | 7 ++++++- Lib/test/test_ctypes/test_pickling.py | 6 +++++- Lib/test/test_ctypes/test_pointers.py | 11 +++++++---- Lib/test/test_ctypes/test_prototypes.py | 5 ++++- Lib/test/test_ctypes/test_python_api.py | 5 ++++- Lib/test/test_ctypes/test_random_things.py | 8 ++++---- Lib/test/test_ctypes/test_repr.py | 5 ++++- Lib/test/test_ctypes/test_returnfuncptrs.py | 3 ++- Lib/test/test_ctypes/test_simplesubclasses.py | 5 ++++- Lib/test/test_ctypes/test_sizes.py | 6 ++++-- Lib/test/test_ctypes/test_slicing.py | 3 ++- Lib/test/test_ctypes/test_stringptr.py | 2 +- Lib/test/test_ctypes/test_strings.py | 2 +- Lib/test/test_ctypes/test_struct_fields.py | 2 +- Lib/test/test_ctypes/test_structures.py | 6 +++++- Lib/test/test_ctypes/test_unaligned_structures.py | 5 ++++- Lib/test/test_ctypes/test_values.py | 2 +- Lib/test/test_ctypes/test_varsize_struct.py | 2 +- Lib/test/test_ctypes/test_win32.py | 10 +++++++--- Lib/test/test_ctypes/test_wintypes.py | 2 +- 48 files changed, 179 insertions(+), 83 deletions(-) diff --git a/Lib/ctypes/_endian.py b/Lib/ctypes/_endian.py index b5446c049bc9dc..3febb3118b8230 100644 --- a/Lib/ctypes/_endian.py +++ b/Lib/ctypes/_endian.py @@ -1,5 +1,5 @@ import sys -from ctypes import * +from ctypes import Array, Structure, Union _array_type = type(Array) diff --git a/Lib/test/test_ctypes/test_anon.py b/Lib/test/test_ctypes/test_anon.py index d378392ebe2844..704f7a3d38a5ac 100644 --- a/Lib/test/test_ctypes/test_anon.py +++ b/Lib/test/test_ctypes/test_anon.py @@ -1,6 +1,6 @@ import unittest import test.support -from ctypes import * +from ctypes import c_int, Union, Structure, sizeof class AnonTest(unittest.TestCase): diff --git a/Lib/test/test_ctypes/test_array_in_pointer.py b/Lib/test/test_ctypes/test_array_in_pointer.py index ca1edcf6210176..a149aa9463f30c 100644 --- a/Lib/test/test_ctypes/test_array_in_pointer.py +++ b/Lib/test/test_ctypes/test_array_in_pointer.py @@ -1,5 +1,5 @@ import unittest -from ctypes import * +from ctypes import c_byte, Structure, POINTER, cast from binascii import hexlify import re diff --git a/Lib/test/test_ctypes/test_arrays.py b/Lib/test/test_ctypes/test_arrays.py index 473083870ca6e5..4f8747d46ae366 100644 --- a/Lib/test/test_ctypes/test_arrays.py +++ b/Lib/test/test_ctypes/test_arrays.py @@ -2,7 +2,10 @@ import sys import unittest import warnings -from ctypes import * +from ctypes import (Structure, Array, sizeof, addressof, + create_string_buffer, create_unicode_buffer, + c_char, c_wchar, c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, + c_long, c_ulonglong, c_float, c_double, c_longdouble) from test.support import bigmemtest, _2G from test.test_ctypes import need_symbol diff --git a/Lib/test/test_ctypes/test_as_parameter.py b/Lib/test/test_ctypes/test_as_parameter.py index fcf99ff057920b..1048c5064c3c17 100644 --- a/Lib/test/test_ctypes/test_as_parameter.py +++ b/Lib/test/test_ctypes/test_as_parameter.py @@ -1,8 +1,12 @@ -import unittest +import _ctypes_test import ctypes -from ctypes import * +import unittest +from ctypes import (Structure, CDLL, CFUNCTYPE, + POINTER, pointer, byref, + c_short, c_int, c_long, c_longlong, + c_byte, c_wchar, c_float, c_double, + ArgumentError) from test.test_ctypes import need_symbol -import _ctypes_test dll = CDLL(_ctypes_test.__file__) diff --git a/Lib/test/test_ctypes/test_bitfields.py b/Lib/test/test_ctypes/test_bitfields.py index dad71a0ba7ee4a..e7b06dd767f9ea 100644 --- a/Lib/test/test_ctypes/test_bitfields.py +++ b/Lib/test/test_ctypes/test_bitfields.py @@ -1,4 +1,8 @@ -from ctypes import * +from ctypes import (CDLL, Structure, sizeof, POINTER, byref, alignment, + LittleEndianStructure, BigEndianStructure, + c_byte, c_ubyte, c_char, c_char_p, c_void_p, c_wchar, + c_uint32, c_uint64, + c_short, c_ushort, c_int, c_uint, c_long, c_ulong, c_longlong, c_ulonglong) from test.test_ctypes import need_symbol from test import support import unittest diff --git a/Lib/test/test_ctypes/test_buffers.py b/Lib/test/test_ctypes/test_buffers.py index a9be2023aa0fa0..c6c59b926798e0 100644 --- a/Lib/test/test_ctypes/test_buffers.py +++ b/Lib/test/test_ctypes/test_buffers.py @@ -1,4 +1,5 @@ -from ctypes import * +from ctypes import (create_string_buffer, create_unicode_buffer, sizeof, + c_char, c_wchar) from test.test_ctypes import need_symbol import unittest diff --git a/Lib/test/test_ctypes/test_bytes.py b/Lib/test/test_ctypes/test_bytes.py index 092ec5af0524c4..3538ed7d7197cc 100644 --- a/Lib/test/test_ctypes/test_bytes.py +++ b/Lib/test/test_ctypes/test_bytes.py @@ -1,7 +1,7 @@ """Test where byte objects are accepted""" -import unittest import sys -from ctypes import * +import unittest +from ctypes import Structure, c_char, c_char_p, c_wchar, c_wchar_p class BytesTest(unittest.TestCase): def test_c_char(self): diff --git a/Lib/test/test_ctypes/test_byteswap.py b/Lib/test/test_ctypes/test_byteswap.py index 7e98559dfbccb6..7507c07d8a8a95 100644 --- a/Lib/test/test_ctypes/test_byteswap.py +++ b/Lib/test/test_ctypes/test_byteswap.py @@ -1,7 +1,13 @@ import sys, unittest, struct, math, ctypes from binascii import hexlify -from ctypes import * +from ctypes import (Structure, Union, LittleEndianUnion, BigEndianUnion, + BigEndianStructure, LittleEndianStructure, + POINTER, sizeof, cast, + c_byte, c_ubyte, c_char, c_wchar, c_void_p, + c_short, c_ushort, c_int, c_uint, + c_long, c_ulong, c_longlong, c_ulonglong, + c_uint32, c_float, c_double) def bin(s): return hexlify(memoryview(s)).decode().upper() diff --git a/Lib/test/test_ctypes/test_callbacks.py b/Lib/test/test_ctypes/test_callbacks.py index a5c2e430d85ad0..7ce9775978fa4b 100644 --- a/Lib/test/test_ctypes/test_callbacks.py +++ b/Lib/test/test_ctypes/test_callbacks.py @@ -3,7 +3,12 @@ from test import support import ctypes -from ctypes import * +from ctypes import (CDLL, cdll, Structure, CFUNCTYPE, + ArgumentError, POINTER, sizeof, + c_byte, c_ubyte, c_char, c_char_p, + c_short, c_ushort, c_int, c_uint, + c_long, c_longlong, c_ulonglong, c_ulong, + c_float, c_double, c_longdouble, py_object) from test.test_ctypes import need_symbol from _ctypes import CTYPES_MAX_ARGCOUNT import _ctypes_test diff --git a/Lib/test/test_ctypes/test_cast.py b/Lib/test/test_ctypes/test_cast.py index 7ee23b16f1b00b..641b0783515c65 100644 --- a/Lib/test/test_ctypes/test_cast.py +++ b/Lib/test/test_ctypes/test_cast.py @@ -1,7 +1,9 @@ -from ctypes import * -from test.test_ctypes import need_symbol -import unittest import sys +import unittest +from ctypes import (Structure, Union, POINTER, cast, sizeof, addressof, + c_void_p, c_char_p, c_wchar_p, + c_byte, c_short, c_int) +from test.test_ctypes import need_symbol class Test(unittest.TestCase): @@ -12,7 +14,7 @@ def test_array2pointer(self): ptr = cast(array, POINTER(c_int)) self.assertEqual([ptr[i] for i in range(3)], [42, 17, 2]) - if 2*sizeof(c_short) == sizeof(c_int): + if 2 * sizeof(c_short) == sizeof(c_int): ptr = cast(array, POINTER(c_short)) if sys.byteorder == "little": self.assertEqual([ptr[i] for i in range(6)], diff --git a/Lib/test/test_ctypes/test_cfuncs.py b/Lib/test/test_ctypes/test_cfuncs.py index d66e679799c543..9cbde8a13091f2 100644 --- a/Lib/test/test_ctypes/test_cfuncs.py +++ b/Lib/test/test_ctypes/test_cfuncs.py @@ -1,13 +1,14 @@ -# A lot of failures in these tests on Mac OS X. -# Byte order related? - import unittest import ctypes -from ctypes import * +from ctypes import (CDLL, + c_byte, c_ubyte, c_char, + c_short, c_ushort, c_int, c_uint, + c_long, c_ulong, c_longlong, c_ulonglong, + c_float, c_double, c_longdouble) from test.test_ctypes import need_symbol - import _ctypes_test + class CFunctions(unittest.TestCase): _dll = CDLL(_ctypes_test.__file__) @@ -210,5 +211,6 @@ def __getattr__(self, name): class stdcallCFunctions(CFunctions): _dll = stdcall_dll(_ctypes_test.__file__) + if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_ctypes/test_checkretval.py b/Lib/test/test_ctypes/test_checkretval.py index b4834322ea7f8a..fe5f2442cd7b4e 100644 --- a/Lib/test/test_ctypes/test_checkretval.py +++ b/Lib/test/test_ctypes/test_checkretval.py @@ -1,15 +1,16 @@ -import unittest - import ctypes -from ctypes import * +import unittest +from ctypes import CDLL, c_int from test.test_ctypes import need_symbol + class CHECKED(c_int): def _check_retval_(value): # Receives a CHECKED instance. return str(value.value) _check_retval_ = staticmethod(_check_retval_) + class Test(unittest.TestCase): def test_checkretval(self): @@ -32,5 +33,7 @@ def test_oledll(self): oleaut32 = ctypes.oledll.oleaut32 self.assertRaises(OSError, oleaut32.CreateTypeLib2, 0, None, None) + + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_delattr.py b/Lib/test/test_ctypes/test_delattr.py index 0f4d58691b55e7..10d2fe066fc068 100644 --- a/Lib/test/test_ctypes/test_delattr.py +++ b/Lib/test/test_ctypes/test_delattr.py @@ -1,9 +1,11 @@ import unittest -from ctypes import * +from ctypes import Structure, c_char, c_int + class X(Structure): _fields_ = [("foo", c_int)] + class TestCase(unittest.TestCase): def test_simple(self): self.assertRaises(TypeError, @@ -17,5 +19,6 @@ def test_struct(self): self.assertRaises(TypeError, delattr, X(), "foo") + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_errno.py b/Lib/test/test_ctypes/test_errno.py index bfc20bd68fc7f0..3376322299d29e 100644 --- a/Lib/test/test_ctypes/test_errno.py +++ b/Lib/test/test_ctypes/test_errno.py @@ -2,14 +2,15 @@ import threading import ctypes -from ctypes import * +from ctypes import CDLL, c_int, c_char_p, c_wchar_p, get_errno, set_errno from ctypes.util import find_library class Test(unittest.TestCase): def test_open(self): libc_name = find_library("c") if libc_name is None: - raise unittest.SkipTest("Unable to find C library") + self.skipTest("Unable to find C library") + libc = CDLL(libc_name, use_errno=True) if os.name == "nt": libc_open = libc._open @@ -73,5 +74,6 @@ def _worker(): ctypes.set_last_error(0) + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py index 1ff9d019b138a4..7a1658b63cbac7 100644 --- a/Lib/test/test_ctypes/test_find.py +++ b/Lib/test/test_ctypes/test_find.py @@ -1,11 +1,12 @@ -import unittest -import unittest.mock import os.path import sys import test.support -from test.support import os_helper -from ctypes import * +import unittest +import unittest.mock +from ctypes import CDLL, RTLD_GLOBAL from ctypes.util import find_library +from test.support import os_helper + # On some systems, loading the OpenGL libraries needs the RTLD_GLOBAL mode. class Test_OpenGL_libs(unittest.TestCase): @@ -36,11 +37,13 @@ def setUpClass(cls): cls.gl = CDLL(lib_gl, mode=RTLD_GLOBAL) except OSError: pass + if lib_glu: try: cls.glu = CDLL(lib_glu, RTLD_GLOBAL) except OSError: pass + if lib_gle: try: cls.gle = CDLL(lib_gle) diff --git a/Lib/test/test_ctypes/test_frombuffer.py b/Lib/test/test_ctypes/test_frombuffer.py index 55c244356b30d0..e3e1267387848e 100644 --- a/Lib/test/test_ctypes/test_frombuffer.py +++ b/Lib/test/test_ctypes/test_frombuffer.py @@ -1,7 +1,7 @@ -from ctypes import * import array import gc import unittest +from ctypes import Structure, Union, Array, sizeof, c_char, c_int class X(Structure): _fields_ = [("c_int", c_int)] diff --git a/Lib/test/test_ctypes/test_funcptr.py b/Lib/test/test_ctypes/test_funcptr.py index ef6772c6e88b65..72684d6d1cd19b 100644 --- a/Lib/test/test_ctypes/test_funcptr.py +++ b/Lib/test/test_ctypes/test_funcptr.py @@ -1,6 +1,8 @@ -import unittest +import _ctypes_test import ctypes -from ctypes import * +import unittest +from ctypes import (CDLL, Structure, CFUNCTYPE, sizeof, + c_void_p, c_char_p, c_char, c_int, c_uint, c_long) try: WINFUNCTYPE = ctypes.WINFUNCTYPE @@ -8,9 +10,9 @@ # fake to enable this test on Linux WINFUNCTYPE = CFUNCTYPE -import _ctypes_test lib = CDLL(_ctypes_test.__file__) + class CFuncPtrTestCase(unittest.TestCase): def test_basic(self): X = WINFUNCTYPE(c_int, c_int, c_int) @@ -21,8 +23,8 @@ def func(*args): x = X(func) self.assertEqual(x.restype, c_int) self.assertEqual(x.argtypes, (c_int, c_int)) - self.assertEqual(sizeof(x), sizeof(c_voidp)) - self.assertEqual(sizeof(X), sizeof(c_voidp)) + self.assertEqual(sizeof(x), sizeof(c_void_p)) + self.assertEqual(sizeof(X), sizeof(c_void_p)) def test_first(self): StdCallback = WINFUNCTYPE(c_int, c_int, c_int) @@ -129,5 +131,6 @@ def test_abstract(self): self.assertRaises(TypeError, _CFuncPtr, 13, "name", 42, "iid") + if __name__ == '__main__': unittest.main() diff --git a/Lib/test/test_ctypes/test_functions.py b/Lib/test/test_ctypes/test_functions.py index 3f331703a0db22..a14924a9413cec 100644 --- a/Lib/test/test_ctypes/test_functions.py +++ b/Lib/test/test_ctypes/test_functions.py @@ -6,7 +6,11 @@ """ import ctypes -from ctypes import * +from ctypes import (CDLL, Structure, Array, CFUNCTYPE, + byref, POINTER, pointer, ArgumentError, + c_char, c_wchar, c_byte, c_char_p, + c_short, c_int, c_long, c_longlong, + c_float, c_double, c_longdouble) from test.test_ctypes import need_symbol import sys, unittest diff --git a/Lib/test/test_ctypes/test_incomplete.py b/Lib/test/test_ctypes/test_incomplete.py index 0b53c15f1f9986..552effaa3db973 100644 --- a/Lib/test/test_ctypes/test_incomplete.py +++ b/Lib/test/test_ctypes/test_incomplete.py @@ -1,7 +1,7 @@ import ctypes import unittest import warnings -from ctypes import * +from ctypes import Structure, POINTER, pointer, c_char_p ################################################################ # diff --git a/Lib/test/test_ctypes/test_init.py b/Lib/test/test_ctypes/test_init.py index 75fad112a01ffb..113425e5823edc 100644 --- a/Lib/test/test_ctypes/test_init.py +++ b/Lib/test/test_ctypes/test_init.py @@ -1,5 +1,6 @@ -from ctypes import * import unittest +from ctypes import Structure, c_int + class X(Structure): _fields_ = [("a", c_int), @@ -15,6 +16,7 @@ def __init__(self): self.a = 9 self.b = 12 + class Y(Structure): _fields_ = [("x", X)] @@ -36,5 +38,6 @@ def test_get(self): self.assertEqual((y.x.a, y.x.b), (9, 12)) self.assertEqual(y.x.new_was_called, False) + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_internals.py b/Lib/test/test_ctypes/test_internals.py index 271e3f57f81743..1290f80111d283 100644 --- a/Lib/test/test_ctypes/test_internals.py +++ b/Lib/test/test_ctypes/test_internals.py @@ -1,6 +1,6 @@ # This tests the internal _objects attribute import unittest -from ctypes import * +from ctypes import Structure, POINTER, c_char_p, c_int from sys import getrefcount as grc # XXX This test must be reviewed for correctness!!! diff --git a/Lib/test/test_ctypes/test_keeprefs.py b/Lib/test/test_ctypes/test_keeprefs.py index 94c02573fa19d8..ecfcda13945dc6 100644 --- a/Lib/test/test_ctypes/test_keeprefs.py +++ b/Lib/test/test_ctypes/test_keeprefs.py @@ -1,4 +1,4 @@ -from ctypes import * +from ctypes import Structure, POINTER, pointer, c_char_p, c_int import unittest class SimpleTestCase(unittest.TestCase): diff --git a/Lib/test/test_ctypes/test_libc.py b/Lib/test/test_ctypes/test_libc.py index 56285b5ff81512..8664529f094476 100644 --- a/Lib/test/test_ctypes/test_libc.py +++ b/Lib/test/test_ctypes/test_libc.py @@ -1,10 +1,13 @@ import unittest -from ctypes import * -import _ctypes_test +from ctypes import (CDLL, CFUNCTYPE, POINTER, create_string_buffer, sizeof, + c_void_p, c_char, c_int, c_double, c_size_t) + +import _ctypes_test lib = CDLL(_ctypes_test.__file__) + def three_way_cmp(x, y): """Return -1 if x < y, 0 if x == y and 1 if x > y""" return (x > y) - (x < y) diff --git a/Lib/test/test_ctypes/test_loading.py b/Lib/test/test_ctypes/test_loading.py index fec26aab1d8031..0cbfcf01c0cf2b 100644 --- a/Lib/test/test_ctypes/test_loading.py +++ b/Lib/test/test_ctypes/test_loading.py @@ -1,15 +1,15 @@ -from ctypes import * import ctypes import os import shutil import subprocess import sys -import unittest import test.support -from test.support import import_helper -from test.support import os_helper +import unittest +from test.support import import_helper, os_helper +from ctypes import CDLL, cdll, addressof, c_void_p, c_char_p from ctypes.util import find_library + libc_name = None def setUpModule(): @@ -126,6 +126,7 @@ def test_1703286_B(self): kernel32.GetProcAddress.restype = c_void_p proc = kernel32.GetProcAddress(advapi32._handle, b"CloseEventLog") self.assertTrue(proc) + # This is the real test: call the function via 'call_function' self.assertEqual(0, call_function(proc, (None,))) @@ -196,6 +197,5 @@ def should_fail(command): "WinDLL('_sqlite3.dll'); p.close()") - if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_memfunctions.py b/Lib/test/test_ctypes/test_memfunctions.py index d5c973521177c8..3f3b6319edb13a 100644 --- a/Lib/test/test_ctypes/test_memfunctions.py +++ b/Lib/test/test_ctypes/test_memfunctions.py @@ -1,7 +1,11 @@ import sys from test import support import unittest -from ctypes import * +from ctypes import (POINTER, sizeof, cast, + create_string_buffer, string_at, + create_unicode_buffer, wstring_at, + memmove, memset, + c_char_p, c_byte, c_ubyte, c_wchar) from test.test_ctypes import need_symbol class MemFunctionsTest(unittest.TestCase): diff --git a/Lib/test/test_ctypes/test_numbers.py b/Lib/test/test_ctypes/test_numbers.py index aad6af4b8671ce..061876f9f776d6 100644 --- a/Lib/test/test_ctypes/test_numbers.py +++ b/Lib/test/test_ctypes/test_numbers.py @@ -3,8 +3,10 @@ import unittest from array import array from operator import truth -from ctypes import * -from ctypes import _SimpleCData +from ctypes import (byref, sizeof, alignment, _SimpleCData, + c_char, c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, + c_long, c_ulong, c_longlong, c_ulonglong, + c_float, c_double, c_longdouble, c_bool) def valid_ranges(*types): # given a sequence of numeric types, collect their _type_ diff --git a/Lib/test/test_ctypes/test_objects.py b/Lib/test/test_ctypes/test_objects.py index 44a3c61ad79267..78b1634115bdb4 100644 --- a/Lib/test/test_ctypes/test_objects.py +++ b/Lib/test/test_ctypes/test_objects.py @@ -11,7 +11,7 @@ Here is an array of string pointers: ->>> from ctypes import * +>>> from ctypes import Structure, c_int, c_char_p >>> array = (c_char_p * 5)() >>> print(array._objects) None diff --git a/Lib/test/test_ctypes/test_pep3118.py b/Lib/test/test_ctypes/test_pep3118.py index 038161745df905..c8eb584858ca9d 100644 --- a/Lib/test/test_ctypes/test_pep3118.py +++ b/Lib/test/test_ctypes/test_pep3118.py @@ -1,5 +1,10 @@ import unittest -from ctypes import * +from ctypes import (CFUNCTYPE, POINTER, sizeof, Union, + Structure, LittleEndianStructure, BigEndianStructure, + c_char, c_byte, c_ubyte, + c_short, c_ushort, c_int, c_uint, + c_long, c_ulong, c_longlong, c_ulonglong, c_uint64, + c_bool, c_float, c_double, c_longdouble, py_object) import re, sys if sys.byteorder == "little": diff --git a/Lib/test/test_ctypes/test_pickling.py b/Lib/test/test_ctypes/test_pickling.py index c4a79b977931c8..1df79be9fbac1d 100644 --- a/Lib/test/test_ctypes/test_pickling.py +++ b/Lib/test/test_ctypes/test_pickling.py @@ -1,9 +1,13 @@ import unittest import pickle -from ctypes import * +from ctypes import (CDLL, Structure, CFUNCTYPE, pointer, + c_void_p, c_char_p, c_wchar_p, c_char, c_wchar, c_int, c_double) + + import _ctypes_test dll = CDLL(_ctypes_test.__file__) + class X(Structure): _fields_ = [("a", c_int), ("b", c_double)] init_called = 0 diff --git a/Lib/test/test_ctypes/test_pointers.py b/Lib/test/test_ctypes/test_pointers.py index 7b6c3f5babe481..7d13aebdbbeafe 100644 --- a/Lib/test/test_ctypes/test_pointers.py +++ b/Lib/test/test_ctypes/test_pointers.py @@ -1,8 +1,11 @@ -import unittest, sys - -import ctypes -from ctypes import * import _ctypes_test +import ctypes +import sys +import unittest +from ctypes import (CDLL, CFUNCTYPE, Structure, POINTER, pointer, byref, sizeof, + c_void_p, c_char_p, + c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, + c_long, c_ulong, c_longlong, c_ulonglong, c_float, c_double) ctype_types = [c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, c_long, c_ulong, c_longlong, c_ulonglong, c_double, c_float] diff --git a/Lib/test/test_ctypes/test_prototypes.py b/Lib/test/test_ctypes/test_prototypes.py index bf27561487ac81..fe620439a25b29 100644 --- a/Lib/test/test_ctypes/test_prototypes.py +++ b/Lib/test/test_ctypes/test_prototypes.py @@ -1,4 +1,7 @@ -from ctypes import * +from ctypes import (CDLL, CFUNCTYPE, POINTER, ArgumentError, + pointer, byref, sizeof, addressof, + c_void_p, c_char_p, c_wchar_p, c_char, c_wchar, c_buffer, + c_short, c_int, c_long, c_longlong, c_double) from test.test_ctypes import need_symbol import unittest diff --git a/Lib/test/test_ctypes/test_python_api.py b/Lib/test/test_ctypes/test_python_api.py index de8989e2c3300f..3799311751a055 100644 --- a/Lib/test/test_ctypes/test_python_api.py +++ b/Lib/test/test_ctypes/test_python_api.py @@ -1,6 +1,8 @@ -from ctypes import * import unittest from test import support +from ctypes import (pythonapi, POINTER, c_buffer, sizeof, + py_object, c_char_p, c_char, c_long, c_size_t) + ################################################################ # This section should be moved into ctypes\__init__.py, when it's ready. @@ -82,5 +84,6 @@ def test_pyobject_repr(self): self.assertEqual(repr(py_object(42)), "py_object(42)") self.assertEqual(repr(py_object(object)), "py_object(%r)" % object) + if __name__ == "__main__": unittest.main() diff --git a/Lib/test/test_ctypes/test_random_things.py b/Lib/test/test_ctypes/test_random_things.py index cfd355a7f0835f..fcea8e847eb606 100644 --- a/Lib/test/test_ctypes/test_random_things.py +++ b/Lib/test/test_ctypes/test_random_things.py @@ -1,9 +1,9 @@ -from ctypes import * -import ctypes import contextlib -from test import support -import unittest +import ctypes import sys +import unittest +from test import support +from ctypes import CFUNCTYPE, c_void_p, c_char_p, c_int, c_double def callback_func(arg): diff --git a/Lib/test/test_ctypes/test_repr.py b/Lib/test/test_ctypes/test_repr.py index 60a2c803453d53..bb6b5ae5e799fd 100644 --- a/Lib/test/test_ctypes/test_repr.py +++ b/Lib/test/test_ctypes/test_repr.py @@ -1,4 +1,6 @@ -from ctypes import * +from ctypes import (c_byte, c_short, c_int, c_long, c_longlong, + c_ubyte, c_ushort, c_uint, c_ulong, c_ulonglong, + c_float, c_double, c_longdouble, c_bool, c_char) import unittest subclasses = [] @@ -25,5 +27,6 @@ def test_char(self): self.assertEqual("c_char(b'x')", repr(c_char(b'x'))) self.assertEqual("