From ab46a26de885b7c8c9715060c706066763512d87 Mon Sep 17 00:00:00 2001 From: Joren Hammudoglu Date: Sun, 9 Mar 2025 13:47:43 +0100 Subject: [PATCH] Annotate `unittest.TestCase.__init_subclass__` (#13602) --- stdlib/@tests/stubtest_allowlists/py310.txt | 2 -- stdlib/@tests/stubtest_allowlists/py311.txt | 2 -- stdlib/@tests/stubtest_allowlists/py312.txt | 2 -- stdlib/@tests/stubtest_allowlists/py313.txt | 2 -- stdlib/unittest/case.pyi | 6 +++++- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/py310.txt b/stdlib/@tests/stubtest_allowlists/py310.txt index d809618c6..aa3af5ccc 100644 --- a/stdlib/@tests/stubtest_allowlists/py310.txt +++ b/stdlib/@tests/stubtest_allowlists/py310.txt @@ -164,8 +164,6 @@ builtins.property.__set_name__ # Doesn't actually exist collections\.UserList\.index # ignoring pos-or-keyword parameter dataclasses.KW_ONLY # white lies around defaults importlib.metadata._meta.SimplePath.joinpath # Runtime definition of protocol is incorrect -unittest.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied -unittest.case.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied # =============================================================== diff --git a/stdlib/@tests/stubtest_allowlists/py311.txt b/stdlib/@tests/stubtest_allowlists/py311.txt index 26f846f33..07c67b058 100644 --- a/stdlib/@tests/stubtest_allowlists/py311.txt +++ b/stdlib/@tests/stubtest_allowlists/py311.txt @@ -145,8 +145,6 @@ builtins.property.__set_name__ # Doesn't actually exist collections\.UserList\.index # ignoring pos-or-keyword parameter dataclasses.KW_ONLY # white lies around defaults importlib.metadata._meta.SimplePath.joinpath # Runtime definition of protocol is incorrect -unittest.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied -unittest.case.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied # =============================================================== diff --git a/stdlib/@tests/stubtest_allowlists/py312.txt b/stdlib/@tests/stubtest_allowlists/py312.txt index 1e48d6809..51f169f91 100644 --- a/stdlib/@tests/stubtest_allowlists/py312.txt +++ b/stdlib/@tests/stubtest_allowlists/py312.txt @@ -157,8 +157,6 @@ builtins.property.__set_name__ # Doesn't actually exist collections\.UserList\.index # ignoring pos-or-keyword parameter dataclasses.KW_ONLY # white lies around defaults importlib.metadata._meta.SimplePath.joinpath # Runtime definition of protocol is incorrect -unittest.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied -unittest.case.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied # =============================================================== diff --git a/stdlib/@tests/stubtest_allowlists/py313.txt b/stdlib/@tests/stubtest_allowlists/py313.txt index 25f56e73e..86faeafc4 100644 --- a/stdlib/@tests/stubtest_allowlists/py313.txt +++ b/stdlib/@tests/stubtest_allowlists/py313.txt @@ -147,5 +147,3 @@ builtins.property.__set_name__ # Doesn't actually exist collections\.UserList\.index # ignoring pos-or-keyword parameter dataclasses.KW_ONLY # white lies around defaults importlib.metadata._meta.SimplePath.joinpath # Runtime definition of protocol is incorrect -unittest.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied -unittest.case.TestCase.__init_subclass__ # Runtime has *args, **kwargs, but will error if any are supplied diff --git a/stdlib/unittest/case.pyi b/stdlib/unittest/case.pyi index a92f03f97..33cd556d2 100644 --- a/stdlib/unittest/case.pyi +++ b/stdlib/unittest/case.pyi @@ -20,7 +20,7 @@ from typing import ( TypeVar, overload, ) -from typing_extensions import ParamSpec, Self, TypeAlias +from typing_extensions import Never, ParamSpec, Self, TypeAlias from warnings import WarningMessage if sys.version_info >= (3, 9): @@ -323,6 +323,10 @@ class TestCase: self, subset: Mapping[Any, Any], dictionary: Mapping[Any, Any], msg: object = None ) -> None: ... + if sys.version_info >= (3, 10): + # Runtime has *args, **kwargs, but will error if any are supplied + def __init_subclass__(cls, *args: Never, **kwargs: Never) -> None: ... + class FunctionTestCase(TestCase): def __init__( self,