8000 gh-118761: Add test_lazy_import for more modules by danielhollas · Pull Request #133057 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content
7 changes: 7 additions & 0 deletions Lib/test/test_ast/test_ast.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from test.support import os_helper
from test.support import skip_emscripten_stack_overflow, skip_wasi_stack_overflow
from test.support.ast_helper import ASTTestMixin
from test.support.import_helper import ensure_lazy_imports
from test.test_ast.utils import to_tuple
from test.test_ast.snippets import (
eval_tests, eval_results, exec_tests, exec_results, single_tests, single_results
Expand All @@ -47,6 +48,12 @@ def ast_repr_update_snapshots() -> None:
AST_REPR_DATA_FILE.write_text("\n".join(data))


class LazyImportTest(unittest.TestCase):
@support.cpython_only
def test_lazy_import(self):
ensure_lazy_imports("ast", {"contextlib", "enum", "inspect", "re", "collections", "argparse"})


class AST_Tests(unittest.TestCase):
maxDiff = None

Expand Down
8 changes: 8 additions & 0 deletions Lib/test/test_base64.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,16 @@
import binascii
import os
from array import array
from test.support import cpython_only
from test.support import os_helper
from test.support import script_helper
from test.support.import_helper import ensure_lazy_imports


class LazyImportTest(unittest.TestCase):
@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("base64", {"re", "getopt"})


class LegacyBase64TestCase(unittest.TestCase):
Expand Down
8 changes: 7 additions & 1 deletion Lib/test/test_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@
import io
import textwrap
from test import support
from test.support.import_helper import import_module
from test.support.import_helper import ensure_lazy_imports, import_module
from test.support.pty_helper import run_pty

class LazyImportTest(unittest.TestCase):
@support.cpython_only
def test_lazy_import(self):
ensure_lazy_imports("cmd", {"inspect", "string"})


class samplecmdclass(cmd.Cmd):
"""
Instance the sampleclass:
Expand Down
7 changes: 6 additions & 1 deletion Lib/test/test_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
import gc
import pickle
from test import support
from test.support import import_helper, check_disallow_instantiation
from test.support import cpython_only, import_helper, check_disallow_instantiation
from test.support.import_helper import ensure_lazy_imports
from itertools import permutations
from textwrap import dedent
from collections import OrderedDict
Expand Down Expand Up @@ -1565,6 +1566,10 @@ class MiscTestCase(unittest.TestCase):
def test__all__(self):
support.check__all__(self, csv, ('csv', '_csv'))

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("csv", {"re"})

def test_subclassable(self):
# issue 44089
class Foo(csv.Error): ...
Expand Down
10 changes: 10 additions & 0 deletions Lib/test/test_email/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@
import time
import unittest

from test.support import cpython_only
from test.support.import_helper import ensure_lazy_imports


class TestImportTime(unittest.TestCase):

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("email.utils", {"random", "socket"})


class DateTimeTests(unittest.TestCase):

Expand Down
7 changes: 6 additions & 1 deletion Lib/test/test_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
from pickle import dumps, loads, PicklingError, HIGHEST_PROTOCOL
from test import support
from test.support import ALWAYS_EQ, REPO_ROOT
from test.support import threading_helper
from test.support import threading_helper, cpython_only
from test.support.import_helper import ensure_lazy_imports
from datetime import timedelta

python_version = sys.version_info[:2]
Expand Down Expand Up @@ -5288,6 +5289,10 @@ class MiscTestCase(unittest.TestCase):
def test__all__(self):
support.check__all__(self, enum, not_exported={'bin', 'show_flag_values'})

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("enum", {"functools", "warnings", "inspect", "re"})

def test_doc_1(self):
class Single(Enum):
ONE = 1
Expand Down
9 changes: 9 additions & 0 deletions Lib/test/test_functools.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

from test.support import import_helper
from test.support import threading_helper
from test.support import cpython_only
from test.support import EqualToForwardRef

import functools
Expand Down Expand Up @@ -63,6 +64,14 @@ def __add__(self, other):
class MyDict(dict):
pass

class TestImportTime(unittest.TestCase):

@cpython_only
def test_lazy_import(self):
import_helper.ensure_lazy_imports(
"functools", {"os", "weakref", "typing", "annotationlib", "warnings"}
)


class TestPartial:

Expand Down
7 changes: 6 additions & 1 deletion Lib/test/test_gettext.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
from functools import partial

from test import support
from test.support import os_helper
from test.support import cpython_only, os_helper
from test.support.import_helper import ensure_lazy_imports


# TODO:
Expand Down Expand Up @@ -931,6 +932,10 @@ def test__all__(self):
support.check__all__(self, gettext,
not_exported={'c2py', 'ENOENT'})

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("gettext", {"re", "warnings", "locale"})


if __name__ == '__main__':
unittest.main()
Expand Down
9 changes: 7 additions & 2 deletions Lib/test/test_locale.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
from decimal import Decimal
from test.support import verbose, is_android, linked_to_musl, os_helper
from test.support import cpython_only, verbose, is_android, linked_to_musl, os_helper
from test.support.warnings_helper import check_warnings
from test.support.import_helper import import_fresh_module
from test.support.import_helper import ensure_lazy_imports, import_fresh_module
from unittest import mock
import unittest
import locale
import sys
import codecs

class LazyImportTest(unittest.TestCase):
@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("locale", {"re", "warnings"})


class BaseLocalizedTest(unittest.TestCase):
#
Expand Down
7 changes: 6 additions & 1 deletion Lib/test/test_mimetypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
import unittest.mock
from platform import win32_edition
from test import support
from test.support import force_not_colorized, os_helper
from test.support import cpython_only, force_not_colorized, os_helper
from test.support.import_helper import ensure_lazy_imports

try:
import _winapi
Expand Down Expand Up @@ -435,6 +436,10 @@ class MiscTestCase(unittest.TestCase):
def test__all__(self):
support.check__all__(self, mimetypes)

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("mimetypes", {"os", "posixpath", "urllib.parse", "argparse"})


class CommandLineTest(unittest.TestCase):
@force_not_colorized
Expand Down
7 changes: 6 additions & 1 deletion Lib/test/test_optparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@

from io import StringIO
from test import support
from test.support import os_helper
from test.support import cpython_only, os_helper
from test.support.i18n_helper import TestTranslationsBase, update_translation_snapshots
from test.support.import_helper import ensure_lazy_imports

import optparse
from optparse import make_option, Option, \
Expand Down Expand Up @@ -1655,6 +1656,10 @@ def test__all__(self):
not_exported = {'check_builtin', 'AmbiguousOptionError', 'NO_DEFAULT'}
support.check__all__(self, optparse, not_exported=not_exported)

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("optparse", {"textwrap"})


class TestTranslations(TestTranslationsBase):
def test_translations(self):
Expand Down
7 changes: 7 additions & 0 deletions Lib/test/test_pathlib/test_pathlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from urllib.request import pathname2url

from test.support import import_helper
from test.support import cpython_only
from test.support import is_emscripten, is_wasi
from test.support import infinite_recursion
from test.support import os_helper
Expand Down Expand Up @@ -80,6 +81,12 @@ def test_is_notimplemented(self):
self.assertTrue(isinstance(pathlib.UnsupportedOperation(), NotImplementedError))


class LazyImportTest(unittest.TestCase):
@cpython_only
def test_lazy_import(self):
import_helper.ensure_lazy_imports("pathlib", {"shutil"})


#
# Tests for the pure classes.
#
Expand Down
9 changes: 8 additions & 1 deletion Lib/test/test_pickle.py
4CA7
BF19
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
import doctest
import unittest
from test import support
from test.support import import_helper, os_helper
from test.support import cpython_only, import_helper, os_helper
from test.support.import_helper import ensure_lazy_imports

from test.pickletester import AbstractHookTests
from test.pickletester import AbstractUnpickleTests
Expand All @@ -36,6 +37,12 @@
has_c_implementation = False


class LazyImportTest(unittest.TestCase):
@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("pickle", {"re"})


class PyPickleTests(AbstractPickleModuleTests, unittest.TestCase):
dump = staticmethod(pickle._dump)
dumps = staticmethod(pickle._dumps)
Expand Down
7 changes: 7 additions & 0 deletions Lib/test/test_pprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
import types
import unittest

from test.support import cpython_only
from test.support.import_helper import ensure_lazy_imports

# list, tuple and dict subclasses that do or don't overwrite __repr__
class list2(list):
pass
Expand Down Expand Up @@ -129,6 +132,10 @@ def setUp(self):
self.b = list(range(200))
self.a[-12] = self.b

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("pprint", {"dataclasses", "re"})

def test_init(self):
pp = pprint.PrettyPrinter()
pp = pprint.PrettyPrinter(indent=4, width=40, depth=5,
Expand Down
7 changes: 7 additions & 0 deletions Lib/test/test_pstats.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import unittest

from test import support
from test.support.import_helper import ensure_lazy_imports
from io import StringIO
from pstats import SortKey
from enum import StrEnum, _test_simple_enum
Expand All @@ -10,6 +11,12 @@
import tempfile
import cProfile

class LazyImportTest(unittest.TestCase):
@support.cpython_only
def test_lazy_import(self):
ensure_lazy_imports("pstats", {"typing"})


class AddCallersTestCase(unittest.TestCase):
"""Tests for pstats.add_callers helper."""

Expand Down
BF19 2 changes: 2 additions & 0 deletions Lib/test/test_shlex.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import shlex
import string
import unittest
from test.support import cpython_only
from test.support import import_helper


Expand Down Expand Up @@ -364,6 +365,7 @@ def testPunctuationCharsReadOnly(self):
with self.assertRaises(AttributeError):
shlex_instance.punctuation_chars = False

@cpython_only
def test_lazy_imports(self):
import_helper.ensure_lazy_imports('shlex', {'collections', 're', 'os'})

Expand Down
9 changes: 8 additions & 1 deletion Lib/test/test_socket.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
from unittest import mock
from test import support
from test.support import (
is_apple, os_helper, refleak_helper, socket_helper, threading_helper
cpython_only, is_apple, os_helper, refleak_helper, socket_helper, threading_helper
)
from test.support.import_helper import ensure_lazy_imports
import _thread as thread
import array
import contextlib
Expand Down Expand Up @@ -257,6 +258,12 @@ def downgrade_malformed_data_warning():
# Size in bytes of the int type
SIZEOF_INT = array.array("i").itemsize

class TestLazyImport(unittest.TestCase):
@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("socket", {"array", "selectors"})


class SocketTCPTest(unittest.TestCase):

def setUp(self):
Expand Down
8 changes: 8 additions & 0 deletions Lib/test/test_string/test_string.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
import string
from string import Template
import types
from test.support import cpython_only
from test.support.import_helper import ensure_lazy_imports


class LazyImportTest(unittest.TestCase):
@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("base64", {"re", "collections"})


class ModuleTest(unittest.TestCase):
Expand Down
6 changes: 5 additions & 1 deletion Lib/test/test_threading.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import test.support
from test.support import threading_helper, requires_subprocess, requires_gil_enabled
from test.support import verbose, cpython_only, os_helper
from test.support.import_helper import import_module
from test.support.import_helper import ensure_lazy_imports, import_module
from test.support.script_helper import assert_python_ok, assert_python_failure
from test.support import force_not_colorized

Expand Down Expand Up @@ -120,6 +120,10 @@ def tearDown(self):
class ThreadTests(BaseTestCase):
maxDiff = 9999

@cpython_only
def test_lazy_import(self):
ensure_lazy_imports("threading", {"functools", "warnings"})

@cpython_only
def test_name(self):
def func(): pass
Expand Down
Loading
Loading
0