Skip to content

Commit

Permalink
[3.13] pythongh-109413: Enable strict_optional for `libregrtest/mai…
Browse files Browse the repository at this point in the history
…n.py` (pythonGH-126394)

(cherry picked from commit 12ca7e6)

Co-authored-by: sobolevn <mail@sobolevn.me>
  • Loading branch information
sobolevn committed Nov 13, 2024
1 parent 3fe062c commit e6475e9
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 9 deletions.
4 changes: 1 addition & 3 deletions Lib/test/libregrtest/cmdline.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def __init__(self, **kwargs) -> None:
self.randomize = False
self.fromfile = None
self.fail_env_changed = False
self.use_resources = None
self.use_resources: list[str] = []
self.trace = False
self.coverdir = 'coverage'
self.runleaks = False
Expand Down Expand Up @@ -403,8 +403,6 @@ def _parse_args(args, **kwargs):
raise TypeError('%r is an invalid keyword argument '
'for this function' % k)
setattr(ns, k, v)
if ns.use_resources is None:
ns.use_resources = []

parser = _create_parser()
# Issue #14191: argparse doesn't support "intermixed" positional and
Expand Down
21 changes: 18 additions & 3 deletions Lib/test/libregrtest/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def __init__(self, ns: Namespace, _add_python_opts: bool = False):
self.python_cmd = None
self.coverage: bool = ns.trace
self.coverage_dir: StrPath | None = ns.coverdir
self.tmp_dir: StrPath | None = ns.tempdir
self._tmp_dir: StrPath | None = ns.tempdir

# Randomize
self.randomize: bool = ns.randomize
Expand Down Expand Up @@ -159,6 +159,8 @@ def log(self, line=''):
self.logger.log(line)

def find_tests(self, tests: TestList | None = None) -> tuple[TestTuple, TestList | None]:
if tests is None:
tests = []
if self.single_test_run:
self.next_single_filename = os.path.join(self.tmp_dir, 'pynexttest')
try:
Expand Down Expand Up @@ -453,7 +455,12 @@ def finalize_tests(self, coverage: trace.CoverageResults | None) -> None:
if self.junit_filename:
self.results.write_junit(self.junit_filename)

def display_summary(self):
def display_summary(self) -> None:
if self.first_runtests is None:
raise ValueError(
"Should never call `display_summary()` before calling `_run_test()`"
)

duration = time.perf_counter() - self.logger.start_time
filtered = bool(self.match_tests)

Expand Down Expand Up @@ -711,7 +718,15 @@ def _init(self):

strip_py_suffix(self.cmdline_args)

self.tmp_dir = get_temp_dir(self.tmp_dir)
self._tmp_dir = get_temp_dir(self._tmp_dir)

@property
def tmp_dir(self) -> StrPath:
if self._tmp_dir is None:
raise ValueError(
"Should never use `.tmp_dir` before calling `.main()`"
)
return self._tmp_dir

def main(self, tests: TestList | None = None):
if self.want_add_python_opts:
Expand Down
4 changes: 1 addition & 3 deletions Lib/test/libregrtest/mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,8 @@ disallow_untyped_defs = False
check_untyped_defs = False
warn_return_any = False

disable_error_code = return

# Enable --strict-optional for these ASAP:
[mypy-Lib.test.libregrtest.main.*,Lib.test.libregrtest.run_workers.*]
[mypy-Lib.test.libregrtest.run_workers.*]
strict_optional = False

# Various internal modules that typeshed deliberately doesn't have stubs for:
Expand Down
2 changes: 2 additions & 0 deletions Lib/test/libregrtest/run_workers.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ def _run_process(self, runtests: WorkerRunTests, output_fd: int,
# on reading closed stdout
raise ExitThread
raise
return None
except:
self._kill()
raise
Expand Down Expand Up @@ -538,6 +539,7 @@ def _get_result(self) -> QueueOutput | None:
running = get_running(self.workers)
if running:
self.log(running)
return None

def display_result(self, mp_result: MultiprocessResult) -> None:
result = mp_result.result
Expand Down

0 comments on commit e6475e9

Please sign in to comment.