mirror of
https://github.com/python/cpython.git
synced 2025-08-15 22:30:42 +00:00
[3.12] gh-111881: Import doctest lazily in libregrtest (GH-111884) (#111893)
gh-111881: Import doctest lazily in libregrtest (GH-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.
(cherry picked from commit 6f09f69b7f
)
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
e983ca859d
commit
5089faf954
1 changed files with 8 additions and 5 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue