Skip to content

Commit

Permalink
fixes for unittest.runner (#13205)
Browse files Browse the repository at this point in the history
  • Loading branch information
tungol authored Dec 28, 2024
1 parent 0ce3977 commit 4c5f85b
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions stdlib/unittest/runner.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ from _typeshed import SupportsFlush, SupportsWrite
from collections.abc import Callable, Iterable
from typing import Any, Generic, Protocol, TypeVar
from typing_extensions import Never, TypeAlias
from warnings import _ActionKind

_ResultClassType: TypeAlias = Callable[[_TextTestStream, bool, int], TextTestResult]
_ResultClassType: TypeAlias = Callable[[_TextTestStream, bool, int], TextTestResult[Any]]

class _SupportsWriteAndFlush(SupportsWrite[str], SupportsFlush, Protocol): ...

# All methods used by unittest.runner.TextTestResult's stream
class _TextTestStream(_SupportsWriteAndFlush, Protocol):
def writeln(self, arg: str | None = None, /) -> str: ...
def writeln(self, arg: str | None = None, /) -> None: ...

# _WritelnDecorator should have all the same attrs as its stream param.
# But that's not feasible to do Generically
# We can expand the attributes if requested
class _WritelnDecorator:
def __init__(self, stream: _TextTestStream) -> None: ...
def writeln(self, arg: str | None = None) -> str: ...
def __init__(self, stream: _SupportsWriteAndFlush) -> None: ...
def writeln(self, arg: str | None = None) -> None: ...
def __getattr__(self, attr: str) -> Any: ... # Any attribute from the stream type passed to __init__
# These attributes are prevented by __getattr__
stream: Never
Expand All @@ -39,10 +40,8 @@ class TextTestResult(unittest.result.TestResult, Generic[_StreamT]):
showAll: bool # undocumented
stream: _StreamT # undocumented
if sys.version_info >= (3, 12):
durations: unittest.result._DurationsType | None
def __init__(
self, stream: _StreamT, descriptions: bool, verbosity: int, *, durations: unittest.result._DurationsType | None = None
) -> None: ...
durations: int | None
def __init__(self, stream: _StreamT, descriptions: bool, verbosity: int, *, durations: int | None = None) -> None: ...
else:
def __init__(self, stream: _StreamT, descriptions: bool, verbosity: int) -> None: ...

Expand All @@ -56,11 +55,11 @@ class TextTestRunner:
verbosity: int
failfast: bool
buffer: bool
warnings: str | None
warnings: _ActionKind | None
tb_locals: bool

if sys.version_info >= (3, 12):
durations: unittest.result._DurationsType | None
durations: int | None
def __init__(
self,
stream: _SupportsWriteAndFlush | None = None,
Expand All @@ -69,10 +68,10 @@ class TextTestRunner:
failfast: bool = False,
buffer: bool = False,
resultclass: _ResultClassType | None = None,
warnings: str | None = None,
warnings: _ActionKind | None = None,
*,
tb_locals: bool = False,
durations: unittest.result._DurationsType | None = None,
durations: int | None = None,
) -> None: ...
else:
def __init__(
Expand Down

0 comments on commit 4c5f85b

Please sign in to comment.