mirror of https://github.com/python/cpython
gh-111881: Import doctest lazily in libregrtest (#111884)
In most cases, doctest is not needed. So don't always import it at startup. The change reduces the number of modules already imported when a test is run.
This commit is contained in:
parent
2f2a0a3a6c
commit
6f09f69b7f
|
@ -1,4 +1,3 @@
|
|||
import doctest
|
||||
import faulthandler
|
||||
import gc
|
||||
import importlib
|
||||
|
@ -99,14 +98,18 @@ def regrtest_runner(result: TestResult, test_func, runtests: RunTests) -> None:
|
|||
stats = test_result
|
||||
case unittest.TestResult():
|
||||
stats = TestStats.from_unittest(test_result)
|
||||
case doctest.TestResults():
|
||||
stats = TestStats.from_doctest(test_result)
|
||||
case None:
|
||||
print_warning(f"{result.test_name} test runner returned None: {test_func}")
|
||||
stats = None
|
||||
case _:
|
||||
print_warning(f"Unknown test result type: {type(test_result)}")
|
||||
stats = None
|
||||
# Don't import doctest at top level since only few tests return
|
||||
# a doctest.TestResult instance.
|
||||
import doctest
|
||||
if isinstance(test_result, doctest.TestResults):
|
||||
stats = TestStats.from_doctest(test_result)
|
||||
else:
|
||||
print_warning(f"Unknown test result type: {type(test_result)}")
|
||||
stats = None
|
||||
|
||||
result.stats = stats
|
||||
|
||||
|
|
Loading…
Reference in New Issue