Skip to content

gh-134357: Remove unused imports in tests #134340

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Lib/test/.ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,12 @@ extend-exclude = [

[lint]
select = [
"F401", # Unused import
"F811", # Redefinition of unused variable (useful for finding test methods with the same name)
]

[lint.per-file-ignores]
"*/**/__main__.py" = ["F401"] # Unused import
"test_import/*.py" = ["F401"] # Unused import
"test_importlib/*.py" = ["F401"] # Unused import
"typinganndata/partialexecution/*.py" = ["F401"] # Unused import
3 changes: 1 addition & 2 deletions Lib/test/support/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1101,7 +1101,6 @@ def __init__(self):
self.started = False

def start(self):
import warnings
try:
f = open(self.procfile, 'r')
except OSError as e:
Expand Down Expand Up @@ -2728,7 +2727,7 @@ def iter_builtin_types():
# Fall back to making a best-effort guess.
if hasattr(object, '__flags__'):
# Look for any type object with the Py_TPFLAGS_STATIC_BUILTIN flag set.
import datetime
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import has to stay. It deserves a # noqa: F401.

@encukou: Can you confirm?

import datetime # noqa: F401
seen = set()
for cls, subs in walk_class_hierarchy(object):
if cls in seen:
Expand Down
3 changes: 1 addition & 2 deletions Lib/test/support/interpreters/channels.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@

# aliases:
from _interpchannels import (
ChannelError, ChannelNotFoundError, ChannelClosedError,
ChannelEmptyError, ChannelNotEmptyError,
Comment on lines -9 to -10
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be an intentional re-export? cc @ericsnowcurrently as test.support.interpreters follows the layout of the (hopefully) soon-to-be interpreters module

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh right, these imports should be kept. Add # noqa: F401.

ChannelError, ChannelNotFoundError, ChannelEmptyError,
)
from ._crossinterp import (
UNBOUND_ERROR, UNBOUND_REMOVE,
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_capi/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"""
import os
import sys
import sysconfig
import types
import unittest
from test import support
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_codeccallbacks.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import codecs
import html.entities
import itertools
import re
import sys
import unicodedata
import unittest
Expand Down
2 changes: 0 additions & 2 deletions Lib/test/test_crossinterp.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import contextlib
import importlib
import importlib.util
import itertools
import sys
import types
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_ctypes/_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import ctypes
from _ctypes import Structure, Union, _Pointer, Array, _SimpleCData, CFuncPtr
import sys
from test import support


_CData = Structure.__base__
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_ctypes/test_byteswap.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import binascii
import ctypes
import math
import struct
import sys
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_ctypes/test_generated_structs.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"""

import unittest
from test.support import import_helper, verbose
from test.support import import_helper
import re
from dataclasses import dataclass
from functools import cached_property
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_decimal.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import math
import os, sys
import operator
import warnings
import pickle, copy
import unittest
import numbers
Expand Down
5 changes: 1 addition & 4 deletions Lib/test/test_generated_cases.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import contextlib
import os
import re
import sys
import tempfile
import unittest

from io import StringIO
from test import support
from test import test_tools

Expand All @@ -31,12 +29,11 @@ def skip_if_different_mount_drives():

test_tools.skip_if_missing("cases_generator")
with test_tools.imports_under_tool("cases_generator"):
from analyzer import analyze_forest, StackItem
from analyzer import StackItem
from cwriter import CWriter
import parser
from stack import Local, Stack
import tier1_generator
import opcode_metadata_generator
import optimizer_generator


Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_genericpath.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import unittest
import warnings
from test.support import (
is_apple, is_emscripten, os_helper, warnings_helper
is_apple, os_helper, warnings_helper
)
from test.support.script_helper import assert_python_ok
from test.support.os_helper import FakePath
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_gzip.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import struct
import sys
import unittest
import warnings
from subprocess import PIPE, Popen
from test.support import catch_unraisable_exception
from test.support import import_helper
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_hashlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import tempfile
import threading
import unittest
import warnings
from test import support
from test.support import _4G, bigmemtest
from test.support import hashlib_helper
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_hmac.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import hmac
import hashlib
import random
import test.support
import test.support.hashlib_helper as hashlib_helper
import types
import unittest
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_idle.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

# Unittest.main and test.libregrtest.runtest.runtest_inner
# call load_tests, when present here, to discover tests to run.
from idlelib.idle_test import load_tests
from idlelib.idle_test import load_tests # noqa: F401

if __name__ == '__main__':
tk.NoDefaultRoot()
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_interpreters/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import threading
import types
import unittest
import warnings

from test import support

Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_ntpath.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import unittest
import warnings
from test.support import cpython_only, os_helper
from test.support import TestFailed, is_emscripten
from test.support import TestFailed
from test.support.os_helper import FakePath
from test import test_genericpath
from tempfile import TemporaryFile
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_peepholer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from test import support
from test.support.bytecode_helper import (
BytecodeTestCase, CfgOptimizationTestCase, CompilationStepTestCase)
BytecodeTestCase, CfgOptimizationTestCase)


def compile_pattern_with_fast_locals(pattern):
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_pty.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import signal
import socket
import io # readline
import warnings

TEST_STRING_1 = b"I wish to buy a fish license.\n"
TEST_STRING_2 = b"For my pet fish, Eric.\n"
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_pydoc/test_pydoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ class object
# of the known subclasses of object. (doc.docclass() used to
# fail if HeapType was imported before running this test, like
# when running tests sequentially.)
from _testcapi import HeapType
from _testcapi import HeapType # noqa: F401
except ImportError:
pass
text = doc.docclass(object)
Expand Down
9 changes: 2 additions & 7 deletions Lib/test/test_remote_pdb.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import io
import time
import itertools
import json
import os
Expand All @@ -8,16 +7,13 @@
import socket
import subprocess
import sys
import tempfile
import textwrap
import threading
import unittest
import unittest.mock
from contextlib import closing, contextmanager, redirect_stdout, redirect_stderr, ExitStack
from pathlib import Path
from test.support import is_wasi, cpython_only, force_color, requires_subprocess, SHORT_TIMEOUT
from test.support.os_helper import temp_dir, TESTFN, unlink
from typing import Dict, List, Optional, Tuple, Union, Any
from test.support.os_helper import TESTFN, unlink
from typing import List

import pdb
from pdb import _PdbServer, _PdbClient
Expand Down Expand Up @@ -1434,7 +1430,6 @@ def test_multi_line_commands(self):


def _supports_remote_attaching():
from contextlib import suppress
PROCESS_VM_READV_SUPPORTED = False

try:
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_shutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -3492,7 +3492,7 @@ def test_module_all_attribute(self):
target_api.append('disk_usage')
self.assertEqual(set(shutil.__all__), set(target_api))
with self.assertWarns(DeprecationWarning):
from shutil import ExecError
from shutil import ExecError # noqa: F401


if __name__ == '__main__':
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_string/_support.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import unittest
from string.templatelib import Interpolation


Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
from sysconfig.__main__ import _main, _parse_makefile, _get_pybuilddir, _get_json_data_name
import _imp
import _osx_support
import _sysconfig


HAS_USER_BASE = sysconfig._HAS_USER_BASE
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_threading.py
Original file line number Diff line number Diff line change
Expand Up @@ -1253,7 +1253,7 @@ def test_start_new_thread_failed(self):
# its state should be removed from interpreter' thread states list
# to avoid its double cleanup
try:
from resource import setrlimit, RLIMIT_NPROC
from resource import setrlimit, RLIMIT_NPROC # noqa: F401
except ImportError as err:
self.skipTest(err) # RLIMIT_NPROC is specific to Linux and BSD
code = """if 1:
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_tools/i18n_data/docstrings.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Module docstring"""

# Test docstring extraction
from gettext import gettext as _
from gettext import gettext as _ # noqa: F401


# Empty docstring
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -2516,7 +2516,7 @@ def setUpClass(cls):
from test.support import interpreters
except ModuleNotFoundError:
raise unittest.SkipTest('subinterpreters required')
import test.support.interpreters.channels
import test.support.interpreters.channels # noqa: F401

@cpython_only
@no_rerun('channels (and queues) might have a refleak; see gh-122199')
Expand Down
3 changes: 1 addition & 2 deletions Lib/test/test_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,10 @@
import textwrap
import typing
import weakref
import warnings
import types

from test.support import (
captured_stderr, cpython_only, infinite_recursion, requires_docstrings, import_helper, run_code,
captured_stderr, cpython_only, requires_docstrings, import_helper, run_code,
EqualToForwardRef,
)
from test.typinganndata import (
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_venv.py
Original file line number Diff line number Diff line change
Expand Up @@ -1008,7 +1008,7 @@ def do_test_with_pip(self, system_site_packages):
err, flags=re.MULTILINE)
# Ignore warning about missing optional module:
try:
import ssl
import ssl # noqa: F401
except ImportError:
err = re.sub(
"^WARNING: Disabling truststore since ssl support is missing$",
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_webbrowser.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import sys
import unittest
import webbrowser
from functools import partial
from test import support
from test.support import import_helper
from test.support import is_apple_mobile
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_zipfile/__main__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import unittest

from . import load_tests # noqa: F401
from . import load_tests


if __name__ == "__main__":
Expand Down
Loading