gh-109413: libregrtest: enable mypy's --strict-optional check on most files (#112586)

Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
Alex Waygood 2023-12-01 14:54:33 +00:00 committed by GitHub
parent 5f6ac2d88a
commit 70a38ffb3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 5 deletions

View file

@ -25,7 +25,7 @@ warn_return_any = False
disable_error_code = return
# Enable --strict-optional for these ASAP:
[mypy-Lib.test.libregrtest.main.*,Lib.test.libregrtest.run_workers.*,Lib.test.libregrtest.worker.*,Lib.test.libregrtest.single.*,Lib.test.libregrtest.results.*,Lib.test.libregrtest.utils.*]
[mypy-Lib.test.libregrtest.main.*,Lib.test.libregrtest.run_workers.*]
strict_optional = False
# Various internal modules that typeshed deliberately doesn't have stubs for:

View file

@ -117,6 +117,8 @@ def accumulate_result(self, result: TestResult, runtests: RunTests):
self.worker_bug = True
if result.has_meaningful_duration() and not rerun:
if result.duration is None:
raise ValueError("result.duration is None")
self.test_times.append((result.duration, test_name))
if result.stats is not None:
self.stats.accumulate(result.stats)

View file

@ -237,11 +237,11 @@ def _runtest(result: TestResult, runtests: RunTests) -> None:
output_on_failure = runtests.output_on_failure
timeout = runtests.timeout
use_timeout = (
timeout is not None and threading_helper.can_start_thread
)
if use_timeout:
if timeout is not None and threading_helper.can_start_thread:
use_timeout = True
faulthandler.dump_traceback_later(timeout, exit=True)
else:
use_timeout = False
try:
setup_tests(runtests)

View file

@ -377,10 +377,19 @@ def get_temp_dir(tmp_dir: StrPath | None = None) -> StrPath:
# Python out of the source tree, especially when the
# source tree is read only.
tmp_dir = sysconfig.get_config_var('srcdir')
if not tmp_dir:
raise RuntimeError(
"Could not determine the correct value for tmp_dir"
)
tmp_dir = os.path.join(tmp_dir, 'build')
else:
# WASI platform
tmp_dir = sysconfig.get_config_var('projectbase')
if not tmp_dir:
raise RuntimeError(
"sysconfig.get_config_var('projectbase') "
f"unexpectedly returned {tmp_dir!r} on WASI"
)
tmp_dir = os.path.join(tmp_dir, 'build')
# When get_temp_dir() is called in a worker process,