Issue #23277: Remove unused imports in tests.
diff --git a/Lib/ctypes/test/test_parameters.py b/Lib/ctypes/test/test_parameters.py
index 5c8d703..363f586 100644
--- a/Lib/ctypes/test/test_parameters.py
+++ b/Lib/ctypes/test/test_parameters.py
@@ -49,7 +49,7 @@
 
     # XXX Replace by c_char_p tests
     def test_cstrings(self):
-        from ctypes import c_char_p, byref
+        from ctypes import c_char_p
 
         # c_char_p.from_param on a Python String packs the string
         # into a cparam object
@@ -68,7 +68,7 @@
 
     @need_symbol('c_wchar_p')
     def test_cw_strings(self):
-        from ctypes import byref, c_wchar_p
+        from ctypes import c_wchar_p
 
         c_wchar_p.from_param("123")
 
@@ -98,7 +98,7 @@
     def test_byref_pointer(self):
         # The from_param class method of POINTER(typ) classes accepts what is
         # returned by byref(obj), it type(obj) == typ
-        from ctypes import c_short, c_uint, c_int, c_long, pointer, POINTER, byref
+        from ctypes import c_short, c_uint, c_int, c_long, POINTER, byref
         LPINT = POINTER(c_int)
 
         LPINT.from_param(byref(c_int(42)))
diff --git a/Lib/distutils/tests/test_bdist_rpm.py b/Lib/distutils/tests/test_bdist_rpm.py
index 25c14ab..c1a2a04 100644
--- a/Lib/distutils/tests/test_bdist_rpm.py
+++ b/Lib/distutils/tests/test_bdist_rpm.py
@@ -3,16 +3,12 @@
 import unittest
 import sys
 import os
-import tempfile
-import shutil
 from test.support import run_unittest
 
 from distutils.core import Distribution
 from distutils.command.bdist_rpm import bdist_rpm
 from distutils.tests import support
 from distutils.spawn import find_executable
-from distutils import spawn
-from distutils.errors import DistutilsExecError
 
 SETUP_PY = """\
 from distutils.core import setup
diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py
index 366ffbe..3d84f8b 100644
--- a/Lib/distutils/tests/test_build_ext.py
+++ b/Lib/distutils/tests/test_build_ext.py
@@ -166,7 +166,6 @@
         cmd = self.build_ext(dist)
         cmd.finalize_options()
 
-        from distutils import sysconfig
         py_include = sysconfig.get_python_inc()
         self.assertIn(py_include, cmd.include_dirs)
 
diff --git a/Lib/distutils/tests/test_clean.py b/Lib/distutils/tests/test_clean.py
index df88ec1..c605afd 100644
--- a/Lib/distutils/tests/test_clean.py
+++ b/Lib/distutils/tests/test_clean.py
@@ -1,7 +1,6 @@
 """Tests for distutils.command.clean."""
 import os
 import unittest
-import getpass
 
 from distutils.command.clean import clean
 from distutils.tests import support
diff --git a/Lib/distutils/tests/test_config.py b/Lib/distutils/tests/test_config.py
index 0929f8a..d91dedd 100644
--- a/Lib/distutils/tests/test_config.py
+++ b/Lib/distutils/tests/test_config.py
@@ -1,7 +1,6 @@
 """Tests for distutils.pypirc.pypirc."""
 import os
 import unittest
-import tempfile
 
 from distutils.core import PyPIRCCommand
 from distutils.core import Distribution
diff --git a/Lib/distutils/tests/test_cygwinccompiler.py b/Lib/distutils/tests/test_cygwinccompiler.py
index 8569216..9dc869d 100644
--- a/Lib/distutils/tests/test_cygwinccompiler.py
+++ b/Lib/distutils/tests/test_cygwinccompiler.py
@@ -3,11 +3,10 @@
 import sys
 import os
 from io import BytesIO
-import subprocess
 from test.support import run_unittest
 
 from distutils import cygwinccompiler
-from distutils.cygwinccompiler import (CygwinCCompiler, check_config_h,
+from distutils.cygwinccompiler import (check_config_h,
                                        CONFIG_H_OK, CONFIG_H_NOTOK,
                                        CONFIG_H_UNCERTAIN, get_versions,
                                        get_msvcr)
diff --git a/Lib/distutils/tests/test_dep_util.py b/Lib/distutils/tests/test_dep_util.py
index 3e1c366..c6fae39 100644
--- a/Lib/distutils/tests/test_dep_util.py
+++ b/Lib/distutils/tests/test_dep_util.py
@@ -1,7 +1,6 @@
 """Tests for distutils.dep_util."""
 import unittest
 import os
-import time
 
 from distutils.dep_util import newer, newer_pairwise, newer_group
 from distutils.errors import DistutilsFileError
diff --git a/Lib/distutils/tests/test_file_util.py b/Lib/distutils/tests/test_file_util.py
index a6d04f0..03040af 100644
--- a/Lib/distutils/tests/test_file_util.py
+++ b/Lib/distutils/tests/test_file_util.py
@@ -1,7 +1,6 @@
 """Tests for distutils.file_util."""
 import unittest
 import os
-import shutil
 import errno
 from unittest.mock import patch
 
diff --git a/Lib/distutils/tests/test_install_data.py b/Lib/distutils/tests/test_install_data.py
index d73624d..32ab296 100644
--- a/Lib/distutils/tests/test_install_data.py
+++ b/Lib/distutils/tests/test_install_data.py
@@ -1,7 +1,6 @@
 """Tests for distutils.command.install_data."""
 import os
 import unittest
-import getpass
 
 from distutils.command.install_data import install_data
 from distutils.tests import support
diff --git a/Lib/distutils/tests/test_install_headers.py b/Lib/distutils/tests/test_install_headers.py
index d9ed6b7..2217b32 100644
--- a/Lib/distutils/tests/test_install_headers.py
+++ b/Lib/distutils/tests/test_install_headers.py
@@ -1,7 +1,6 @@
 """Tests for distutils.command.install_headers."""
 import os
 import unittest
-import getpass
 
 from distutils.command.install_headers import install_headers
 from distutils.tests import support
diff --git a/Lib/distutils/tests/test_spawn.py b/Lib/distutils/tests/test_spawn.py
index 6c7eb20..f507ef7 100644
--- a/Lib/distutils/tests/test_spawn.py
+++ b/Lib/distutils/tests/test_spawn.py
@@ -1,11 +1,10 @@
 """Tests for distutils.spawn."""
 import unittest
 import os
-import time
-from test.support import captured_stdout, run_unittest
+from test.support import run_unittest
 
 from distutils.spawn import _nt_quote_args
-from distutils.spawn import spawn, find_executable
+from distutils.spawn import spawn
 from distutils.errors import DistutilsExecError
 from distutils.tests import support
 
diff --git a/Lib/lib2to3/tests/test_all_fixers.py b/Lib/lib2to3/tests/test_all_fixers.py
index 15079fe..c0507cf 100644
--- a/Lib/lib2to3/tests/test_all_fixers.py
+++ b/Lib/lib2to3/tests/test_all_fixers.py
@@ -10,7 +10,6 @@
 import test.support
 
 # Local imports
-from lib2to3 import refactor
 from . import support
 
 
diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py
index def9b0e..b97b73a 100644
--- a/Lib/lib2to3/tests/test_fixers.py
+++ b/Lib/lib2to3/tests/test_fixers.py
@@ -2,12 +2,11 @@
 
 # Python imports
 import os
-import unittest
 from itertools import chain
 from operator import itemgetter
 
 # Local imports
-from lib2to3 import pygram, pytree, refactor, fixer_util
+from lib2to3 import pygram, fixer_util
 from lib2to3.tests import support
 
 
diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/lib2to3/tests/test_parser.py
index 46c8c54..36eb176 100644
--- a/Lib/lib2to3/tests/test_parser.py
+++ b/Lib/lib2to3/tests/test_parser.py
@@ -10,7 +10,7 @@
 
 # Testing imports
 from . import support
-from .support import driver, test_dir
+from .support import driver
 from test.support import verbose
 
 # Python imports
diff --git a/Lib/lib2to3/tests/test_pytree.py b/Lib/lib2to3/tests/test_pytree.py
index c93aa65..a611d17 100644
--- a/Lib/lib2to3/tests/test_pytree.py
+++ b/Lib/lib2to3/tests/test_pytree.py
@@ -11,8 +11,6 @@
 
 from __future__ import with_statement
 
-import warnings
-
 # Testing imports
 from . import support
 
diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py
index f30c1e8..ab5ce727 100644
--- a/Lib/lib2to3/tests/test_refactor.py
+++ b/Lib/lib2to3/tests/test_refactor.py
@@ -7,18 +7,14 @@
 import sys
 import os
 import codecs
-import operator
 import io
 import tempfile
 import shutil
 import unittest
-import warnings
 
 from lib2to3 import refactor, pygram, fixer_base
 from lib2to3.pgen2 import token
 
-from . import support
-
 
 TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data")
 FIXER_DIR = os.path.join(TEST_DATA_DIR, "fixers")
diff --git a/Lib/test/audiotests.py b/Lib/test/audiotests.py
index e52c423..d3e8e9e 100644
--- a/Lib/test/audiotests.py
+++ b/Lib/test/audiotests.py
@@ -1,5 +1,4 @@
 from test.support import findfile, TESTFN, unlink
-import unittest
 import array
 import io
 import pickle
diff --git a/Lib/test/test__locale.py b/Lib/test/test__locale.py
index 58f2f04..ab4e247 100644
--- a/Lib/test/test__locale.py
+++ b/Lib/test/test__locale.py
@@ -4,7 +4,6 @@
 except ImportError:
     nl_langinfo = None
 
-import codecs
 import locale
 import sys
 import unittest
diff --git a/Lib/test/test__osx_support.py b/Lib/test/test__osx_support.py
index ac6325a..bcba8ca 100644
--- a/Lib/test/test__osx_support.py
+++ b/Lib/test/test__osx_support.py
@@ -4,7 +4,6 @@
 
 import os
 import platform
-import shutil
 import stat
 import sys
 import unittest
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
index b4f2bf8..8fd54cc 100644
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -7,8 +7,6 @@
 import weakref
 import pickle
 import operator
-import io
-import math
 import struct
 import sys
 import warnings
diff --git a/Lib/test/test_asynchat.py b/Lib/test/test_asynchat.py
index 3a33fc8..08090b8 100644
--- a/Lib/test/test_asynchat.py
+++ b/Lib/test/test_asynchat.py
@@ -12,7 +12,6 @@
 import sys
 import time
 import unittest
-import warnings
 import unittest.mock
 try:
     import threading
diff --git a/Lib/test/test_bigmem.py b/Lib/test/test_bigmem.py
index 0e54595..9488b30 100644
--- a/Lib/test/test_bigmem.py
+++ b/Lib/test/test_bigmem.py
@@ -14,7 +14,6 @@
 import unittest
 import operator
 import sys
-import functools
 
 # These tests all use one of the bigmemtest decorators to indicate how much
 # memory they use and how much memory they need to be even meaningful.  The
diff --git a/Lib/test/test_binop.py b/Lib/test/test_binop.py
index e9dbddc..fc8d30f 100644
--- a/Lib/test/test_binop.py
+++ b/Lib/test/test_binop.py
@@ -2,7 +2,7 @@
 
 import unittest
 from test import support
-from operator import eq, ne, lt, gt, le, ge
+from operator import eq, le
 from abc import ABCMeta
 
 def gcd(a, b):
diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py
index 2eef9fc..b83f2f1 100644
--- a/Lib/test/test_buffer.py
+++ b/Lib/test/test_buffer.py
@@ -16,7 +16,6 @@
 from test import support
 from itertools import permutations, product
 from random import randrange, sample, choice
-from sysconfig import get_config_var
 import warnings
 import sys, array, io
 from decimal import Decimal
diff --git a/Lib/test/test_codeccallbacks.py b/Lib/test/test_codeccallbacks.py
index ee1e28a..c8cdacf 100644
--- a/Lib/test/test_codeccallbacks.py
+++ b/Lib/test/test_codeccallbacks.py
@@ -4,7 +4,6 @@
 import test.support
 import unicodedata
 import unittest
-import warnings
 
 class PosReturn:
     # this can be used for configurable callbacks
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 45a1987..d875340 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -4,7 +4,6 @@
 import locale
 import sys
 import unittest
-import warnings
 import encodings
 
 from test import support
diff --git a/Lib/test/test_cprofile.py b/Lib/test/test_cprofile.py
index f18983f..53f8917 100644
--- a/Lib/test/test_cprofile.py
+++ b/Lib/test/test_cprofile.py
@@ -6,7 +6,7 @@
 # rip off all interesting stuff from test_profile
 import cProfile
 from test.test_profile import ProfileTest, regenerate_expected_output
-from test.profilee import testfunc
+
 
 class CProfileTest(ProfileTest):
     profilerclass = cProfile.Profile
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py
index 9095f72..e97c9f3 100644
--- a/Lib/test/test_csv.py
+++ b/Lib/test/test_csv.py
@@ -2,7 +2,6 @@
 # csv package unit tests
 
 import copy
-import io
 import sys
 import unittest
 from io import StringIO
@@ -1078,7 +1077,6 @@
              "François Pinard"]
 
     def test_unicode_read(self):
-        import io
         with TemporaryFile("w+", newline='', encoding="utf-8") as fileobj:
             fileobj.write(",".join(self.names) + "\r\n")
             fileobj.seek(0)
@@ -1087,7 +1085,6 @@
 
 
     def test_unicode_write(self):
-        import io
         with TemporaryFile("w+", newline='', encoding="utf-8") as fileobj:
             writer = csv.writer(fileobj)
             writer.writerow(self.names)
diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py
index a7808f5..304b332 100644
--- a/Lib/test/test_dbm_gnu.py
+++ b/Lib/test/test_dbm_gnu.py
@@ -2,7 +2,7 @@
 gdbm = support.import_module("dbm.gnu") #skip if not supported
 import unittest
 import os
-from test.support import verbose, TESTFN, unlink
+from test.support import TESTFN, unlink
 
 
 filename = TESTFN
diff --git a/Lib/test/test_dbm_ndbm.py b/Lib/test/test_dbm_ndbm.py
index 13e31f2..49f4426 100644
--- a/Lib/test/test_dbm_ndbm.py
+++ b/Lib/test/test_dbm_ndbm.py
@@ -1,7 +1,6 @@
 from test import support
 support.import_module("dbm.ndbm") #skip if not supported
 import unittest
-import random
 import dbm.ndbm
 from dbm.ndbm import error
 
diff --git a/Lib/test/test_devpoll.py b/Lib/test/test_devpoll.py
index d1933e2..c133c81 100644
--- a/Lib/test/test_devpoll.py
+++ b/Lib/test/test_devpoll.py
@@ -6,7 +6,7 @@
 import random
 import select
 import unittest
-from test.support import TESTFN, run_unittest, cpython_only
+from test.support import run_unittest, cpython_only
 
 if not hasattr(select, 'devpoll') :
     raise unittest.SkipTest('test works only on Solaris OS family')
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index f7c4806..b9bd135 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -1876,7 +1876,6 @@
         To demonstrate this, we'll create a fake standard input that
         captures our debugger input:
 
-          >>> import tempfile
           >>> real_stdin = sys.stdin
           >>> sys.stdin = _FakeInput([
           ...    'print(x)',  # print data defined by the example
@@ -1917,7 +1916,7 @@
           ... finally:
           ...     sys.stdin = real_stdin
           --Return--
-          > <doctest test.test_doctest.test_pdb_set_trace[8]>(3)calls_set_trace()->None
+          > <doctest test.test_doctest.test_pdb_set_trace[7]>(3)calls_set_trace()->None
           -> import pdb; pdb.set_trace()
           (Pdb) print(y)
           2
@@ -2804,7 +2803,6 @@
     ...         _ = f.write("       'abc def'\n")
     ...         _ = f.write("\n")
     ...         _ = f.write('   \"\"\"\n')
-    ...     import shutil
     ...     rc1, out1, err1 = script_helper.assert_python_failure(
     ...             '-m', 'doctest', fn, fn2, TERM='')
     ...     rc2, out2, err2 = script_helper.assert_python_ok(
diff --git a/Lib/test/test_dynamic.py b/Lib/test/test_dynamic.py
index 5080ec9..3ae090f 100644
--- a/Lib/test/test_dynamic.py
+++ b/Lib/test/test_dynamic.py
@@ -1,7 +1,6 @@
 # Test the most dynamic corner cases of Python's runtime semantics.
 
 import builtins
-import contextlib
 import unittest
 
 from test.support import swap_item, swap_attr
diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py
index 894b800..af3fb85 100644
--- a/Lib/test/test_email/test_email.py
+++ b/Lib/test/test_email/test_email.py
@@ -3421,7 +3421,6 @@
 class TestFeedParsers(TestEmailBase):
 
     def parse(self, chunks):
-        from email.feedparser import FeedParser
         feedparser = FeedParser()
         for chunk in chunks:
             feedparser.feed(chunk)
diff --git a/Lib/test/test_email/test_headerregistry.py b/Lib/test/test_email/test_headerregistry.py
index 55ecdea..af836dc 100644
--- a/Lib/test/test_email/test_headerregistry.py
+++ b/Lib/test/test_email/test_headerregistry.py
@@ -1,7 +1,6 @@
 import datetime
 import textwrap
 import unittest
-import types
 from email import errors
 from email import policy
 from email.message import Message
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index 48f7a70..2e187ac 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -1,6 +1,5 @@
 
 import fractions
-import math
 import operator
 import os
 import random
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index ccef422..730b628 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -5,7 +5,6 @@
 
 import os
 import re
-import pprint
 import subprocess
 import sys
 import sysconfig
diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py
index 3a94383..d345baa 100644
--- a/Lib/test/test_gettext.py
+++ b/Lib/test/test_gettext.py
@@ -1,6 +1,5 @@
 import os
 import base64
-import shutil
 import gettext
 import unittest
 
diff --git a/Lib/test/test_idle.py b/Lib/test/test_idle.py
index 141e89e..0b34e97 100644
--- a/Lib/test/test_idle.py
+++ b/Lib/test/test_idle.py
@@ -1,5 +1,4 @@
 import unittest
-from test import support
 from test.support import import_module
 
 # Skip test if _thread or _tkinter wasn't built or idlelib was deleted.
diff --git a/Lib/test/test_importlib/extension/test_path_hook.py b/Lib/test/test_importlib/extension/test_path_hook.py
index 8829de3..a4b5a64 100644
--- a/Lib/test/test_importlib/extension/test_path_hook.py
+++ b/Lib/test/test_importlib/extension/test_path_hook.py
@@ -2,7 +2,6 @@
 
 machinery = util.import_importlib('importlib.machinery')
 
-import collections
 import unittest
 
 
diff --git a/Lib/test/test_importlib/import_/test_packages.py b/Lib/test/test_importlib/import_/test_packages.py
index 3755b84..2439604 100644
--- a/Lib/test/test_importlib/import_/test_packages.py
+++ b/Lib/test/test_importlib/import_/test_packages.py
@@ -1,7 +1,6 @@
 from .. import util
 import sys
 import unittest
-import importlib
 from test import support
 
 
diff --git a/Lib/test/test_importlib/test_locks.py b/Lib/test/test_importlib/test_locks.py
index df0af12..b2aadff 100644
--- a/Lib/test/test_importlib/test_locks.py
+++ b/Lib/test/test_importlib/test_locks.py
@@ -3,7 +3,6 @@
 init = test_util.import_importlib('importlib')
 
 import sys
-import time
 import unittest
 import weakref
 
diff --git a/Lib/test/test_importlib/test_namespace_pkgs.py b/Lib/test/test_importlib/test_namespace_pkgs.py
index cb49f19..116eb75 100644
--- a/Lib/test/test_importlib/test_namespace_pkgs.py
+++ b/Lib/test/test_importlib/test_namespace_pkgs.py
@@ -1,9 +1,6 @@
 import contextlib
-import importlib.abc
-import importlib.machinery
 import os
 import sys
-import types
 import unittest
 
 from test.test_importlib import util
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index 0991f74..1f30fa6 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -7,17 +7,12 @@
 import email.message
 import re
 import io
-import shutil
 import tempfile
 from test import support
 import unittest
 import textwrap
 import mailbox
 import glob
-try:
-    import fcntl
-except ImportError:
-    pass
 
 
 class TestBase:
diff --git a/Lib/test/test_mailcap.py b/Lib/test/test_mailcap.py
index 22b2fcc..623fadb 100644
--- a/Lib/test/test_mailcap.py
+++ b/Lib/test/test_mailcap.py
@@ -1,6 +1,5 @@
 import mailcap
 import os
-import shutil
 import test.support
 import unittest
 
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index 6c7b99d..d0bc790 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -6,7 +6,6 @@
 import unittest
 import math
 import os
-import platform
 import sys
 import struct
 import sysconfig
diff --git a/Lib/test/test_multiprocessing_main_handling.py b/Lib/test/test_multiprocessing_main_handling.py
index 52273ea..2e15cd8 100644
--- a/Lib/test/test_multiprocessing_main_handling.py
+++ b/Lib/test/test_multiprocessing_main_handling.py
@@ -6,7 +6,6 @@
 
 import importlib
 import importlib.machinery
-import zipimport
 import unittest
 import sys
 import os
@@ -15,7 +14,7 @@
 
 from test.support.script_helper import (
     make_pkg, make_script, make_zip_pkg, make_zip_script,
-    assert_python_ok, assert_python_failure, spawn_python, kill_python)
+    assert_python_ok)
 
 # Look up which start methods are available to test
 import multiprocessing
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 35044ad..2cddd57 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -558,7 +558,6 @@
 
 def pdb_invoke(method, arg):
     """Run pdb.method(arg)."""
-    import pdb
     getattr(pdb.Pdb(nosigint=True), method)(arg)
 
 
diff --git a/Lib/test/test_pep352.py b/Lib/test/test_pep352.py
index 7c98c46..27d514f 100644
--- a/Lib/test/test_pep352.py
+++ b/Lib/test/test_pep352.py
@@ -1,6 +1,5 @@
 import unittest
 import builtins
-import warnings
 import os
 from platform import system as platform_system
 
diff --git a/Lib/test/test_pickletools.py b/Lib/test/test_pickletools.py
index 80221f0..86bebfa 100644
--- a/Lib/test/test_pickletools.py
+++ b/Lib/test/test_pickletools.py
@@ -1,4 +1,3 @@
-import struct
 import pickle
 import pickletools
 from test import support
diff --git a/Lib/test/test_plistlib.py b/Lib/test/test_plistlib.py
index f0e9e5a..12d92fa 100644
--- a/Lib/test/test_plistlib.py
+++ b/Lib/test/test_plistlib.py
@@ -7,7 +7,6 @@
 import codecs
 import binascii
 import collections
-import struct
 from test import support
 from io import BytesIO
 
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index bceeb93..7b9606d 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -8,7 +8,6 @@
 import asynchat
 import socket
 import os
-import time
 import errno
 
 from unittest import TestCase, skipUnless
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index 28cdd90..6a1c829 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -11,7 +11,6 @@
 import os
 import platform
 import pwd
-import shutil
 import stat
 import tempfile
 import unittest
diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py
index 8b3ce70..26faa48 100644
--- a/Lib/test/test_posixpath.py
+++ b/Lib/test/test_posixpath.py
@@ -1,4 +1,3 @@
-import itertools
 import os
 import posixpath
 import unittest
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 213853f..c11408d 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -4,10 +4,8 @@
 Note: test_regrtest cannot be run twice in parallel.
 """
 
-import argparse
 import contextlib
 import faulthandler
-import getopt
 import io
 import os.path
 import platform
diff --git a/Lib/test/test_robotparser.py b/Lib/test/test_robotparser.py
index 90b3072..76f4f7c 100644
--- a/Lib/test/test_robotparser.py
+++ b/Lib/test/test_robotparser.py
@@ -2,8 +2,6 @@
 import unittest
 import urllib.robotparser
 from collections import namedtuple
-from urllib.error import URLError, HTTPError
-from urllib.request import urlopen
 from test import support
 from http.server import BaseHTTPRequestHandler, HTTPServer
 try:
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 982a976..a7cc1e7 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -13,7 +13,6 @@
 import sys
 import os
 import array
-import platform
 import contextlib
 from weakref import proxy
 import signal
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 554c106..01ac12b 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -7,8 +7,6 @@
 import select
 import signal
 import socket
-import select
-import errno
 import tempfile
 import unittest
 import socketserver
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 7f70fd0..786b8cf 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -5,15 +5,12 @@
 import sys
 import signal
 import io
-import locale
 import os
 import errno
 import tempfile
 import time
-import re
 import selectors
 import sysconfig
-import warnings
 import select
 import shutil
 import gc
diff --git a/Lib/test/test_sunau.py b/Lib/test/test_sunau.py
index 0f4134e..bc1f46c 100644
--- a/Lib/test/test_sunau.py
+++ b/Lib/test/test_sunau.py
@@ -1,4 +1,3 @@
-from test.support import TESTFN
 import unittest
 from test import audiotests
 from audioop import byteswap
diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py
index 610377a..69a9ce2 100644
--- a/Lib/test/test_telnetlib.py
+++ b/Lib/test/test_telnetlib.py
@@ -1,7 +1,6 @@
 import socket
 import selectors
 import telnetlib
-import time
 import contextlib
 
 from test import support
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 71df14c..0e70016 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -3,7 +3,7 @@
 """
 
 import test.support
-from test.support import verbose, strip_python_stderr, import_module, cpython_only
+from test.support import verbose, import_module, cpython_only
 from test.support.script_helper import assert_python_ok, assert_python_failure
 
 import random
diff --git a/Lib/test/test_tools/test_gprof2html.py b/Lib/test/test_tools/test_gprof2html.py
index 0c294ec..9489ed9 100644
--- a/Lib/test/test_tools/test_gprof2html.py
+++ b/Lib/test/test_tools/test_gprof2html.py
@@ -2,12 +2,11 @@
 
 import os
 import sys
-import importlib
 import unittest
 from unittest import mock
 import tempfile
 
-from test.test_tools import scriptsdir, skip_if_missing, import_tool
+from test.test_tools import skip_if_missing, import_tool
 
 skip_if_missing()
 
diff --git a/Lib/test/test_tools/test_md5sum.py b/Lib/test/test_tools/test_md5sum.py
index e6c83fb..fb565b7 100644
--- a/Lib/test/test_tools/test_md5sum.py
+++ b/Lib/test/test_tools/test_md5sum.py
@@ -5,7 +5,7 @@
 from test import support
 from test.support.script_helper import assert_python_ok, assert_python_failure
 
-from test.test_tools import scriptsdir, import_tool, skip_if_missing
+from test.test_tools import scriptsdir, skip_if_missing
 
 skip_if_missing()
 
diff --git a/Lib/test/test_tools/test_pdeps.py b/Lib/test/test_tools/test_pdeps.py
index 0097623..27cbfe2 100644
--- a/Lib/test/test_tools/test_pdeps.py
+++ b/Lib/test/test_tools/test_pdeps.py
@@ -4,7 +4,7 @@
 import unittest
 import tempfile
 
-from test.test_tools import scriptsdir, skip_if_missing, import_tool
+from test.test_tools import skip_if_missing, import_tool
 
 skip_if_missing()
 
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 008c751..df8a891 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -462,7 +462,7 @@
         self.requests = []
 
     def http_open(self, req):
-        import email, http.client, copy
+        import email, copy
         self.requests.append(copy.deepcopy(req))
         if self._count == 0:
             self._count = self._count + 1
diff --git a/Lib/test/test_userstring.py b/Lib/test/test_userstring.py
index 35dce2c..7152822 100644
--- a/Lib/test/test_userstring.py
+++ b/Lib/test/test_userstring.py
@@ -1,7 +1,6 @@
 # UserString is a wrapper around the native builtin string type.
 # UserString instances should behave similar to builtin string objects.
 
-import string
 import unittest
 from test import string_tests
 
diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py
index 25fffbf..ad2f2c5 100644
--- a/Lib/test/test_uu.py
+++ b/Lib/test/test_uu.py
@@ -8,7 +8,6 @@
 
 import sys, os
 import uu
-from io import BytesIO
 import io
 
 plaintext = b"The smooth-scaled python crept over the sleeping dog\n"
diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
index 55bee23..a2842b0 100644
--- a/Lib/test/test_venv.py
+++ b/Lib/test/test_venv.py
@@ -15,7 +15,6 @@
 import tempfile
 from test.support import (captured_stdout, captured_stderr,
                           can_symlink, EnvironmentVarGuard, rmtree)
-import textwrap
 import unittest
 import venv
 
diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py
index a67a8b0..8666f72 100644
--- a/Lib/test/test_wave.py
+++ b/Lib/test/test_wave.py
@@ -1,4 +1,3 @@
-from test.support import TESTFN
 import unittest
 from test import audiotests
 from test import support
diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py
index 3e1f4c8..691b95e 100644
--- a/Lib/test/test_weakset.py
+++ b/Lib/test/test_weakset.py
@@ -1,11 +1,6 @@
 import unittest
-from weakref import proxy, ref, WeakSet
-import operator
-import copy
+from weakref import WeakSet
 import string
-from random import randrange, shuffle
-import warnings
-import collections
 from collections import UserString as ustr
 import gc
 import contextlib
diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py
index cd5fd6c..87f3f27 100644
--- a/Lib/test/test_xml_etree_c.py
+++ b/Lib/test/test_xml_etree_c.py
@@ -108,7 +108,7 @@
                              struct.calcsize('8P'))
 
 def test_main():
-    from test import test_xml_etree, test_xml_etree_c
+    from test import test_xml_etree
 
     # Run the tests specific to the C implementation
     support.run_unittest(
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index cfb5964..59f9c32 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -1132,7 +1132,6 @@
     """A variation on support.captured_stdout() which gives a text stream
     having a `buffer` attribute.
     """
-    import io
     orig_stdout = sys.stdout
     sys.stdout = io.TextIOWrapper(io.BytesIO(), encoding=encoding)
     try:
diff --git a/Lib/test/test_xmlrpc_net.py b/Lib/test/test_xmlrpc_net.py
index 1771db5..ae0a28e 100644
--- a/Lib/test/test_xmlrpc_net.py
+++ b/Lib/test/test_xmlrpc_net.py
@@ -1,6 +1,4 @@
 import collections.abc
-import errno
-import socket
 import unittest
 from test import support
 
diff --git a/Lib/test/test_zipimport_support.py b/Lib/test/test_zipimport_support.py
index 5913622..84d526c 100644
--- a/Lib/test/test_zipimport_support.py
+++ b/Lib/test/test_zipimport_support.py
@@ -12,7 +12,6 @@
 import doctest
 import inspect
 import linecache
-import pdb
 import unittest
 from test.support.script_helper import (spawn_python, kill_python, assert_python_ok,
                                         make_script, make_zip_script)
diff --git a/Lib/tkinter/test/runtktests.py b/Lib/tkinter/test/runtktests.py
index 1ca8bde..33dc54a 100644
--- a/Lib/tkinter/test/runtktests.py
+++ b/Lib/tkinter/test/runtktests.py
@@ -7,7 +7,6 @@
 """
 
 import os
-import unittest
 import importlib
 import test.support
 
diff --git a/Lib/tkinter/test/test_ttk/test_functions.py b/Lib/tkinter/test/test_ttk/test_functions.py
index c68a650..a1b7cdf 100644
--- a/Lib/tkinter/test/test_ttk/test_functions.py
+++ b/Lib/tkinter/test/test_ttk/test_functions.py
@@ -1,6 +1,5 @@
 # -*- encoding: utf-8 -*-
 import unittest
-import tkinter
 from tkinter import ttk
 
 class MockTkApp:
diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py
index bb9b956..24569b5 100644
--- a/Lib/unittest/test/testmock/testmagicmethods.py
+++ b/Lib/unittest/test/testmock/testmagicmethods.py
@@ -1,5 +1,4 @@
 import unittest
-import inspect
 import sys
 from unittest.mock import Mock, MagicMock, _magics
 
diff --git a/Lib/unittest/test/testmock/testpatch.py b/Lib/unittest/test/testmock/testpatch.py
index dfce369..2e0c08f 100644
--- a/Lib/unittest/test/testmock/testpatch.py
+++ b/Lib/unittest/test/testmock/testpatch.py
@@ -10,9 +10,9 @@
 from unittest.test.testmock.support import SomeClass, is_instance
 
 from unittest.mock import (
-    NonCallableMock, CallableMixin, patch, sentinel,
+    NonCallableMock, CallableMixin, sentinel,
     MagicMock, Mock, NonCallableMagicMock, patch, _patch,
-    DEFAULT, call, _get_target, _patch
+    DEFAULT, call, _get_target
 )