-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-102444: Fix minor bugs in test_typing
highlighted by pyflakes
#102445
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -473,7 +473,6 @@ def test_var_substitution(self): | |||||||||||||||||||||||||
|
||||||||||||||||||||||||||
def test_bad_var_substitution(self): | ||||||||||||||||||||||||||
T = TypeVar('T') | ||||||||||||||||||||||||||
P = ParamSpec("P") | ||||||||||||||||||||||||||
bad_args = ( | ||||||||||||||||||||||||||
(), (int, str), Union, | ||||||||||||||||||||||||||
Generic, Generic[T], Protocol, Protocol[T], | ||||||||||||||||||||||||||
|
@@ -1037,8 +1036,6 @@ class G2(Generic[Unpack[Ts]]): pass | |||||||||||||||||||||||||
|
||||||||||||||||||||||||||
def test_repr_is_correct(self): | ||||||||||||||||||||||||||
Ts = TypeVarTuple('Ts') | ||||||||||||||||||||||||||
T = TypeVar('T') | ||||||||||||||||||||||||||
T2 = TypeVar('T2') | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
class G1(Generic[*Ts]): pass | ||||||||||||||||||||||||||
class G2(Generic[Unpack[Ts]]): pass | ||||||||||||||||||||||||||
|
@@ -1307,7 +1304,7 @@ def test_callable_args_are_correct(self): | |||||||||||||||||||||||||
i = Callable[[None], *Ts] | ||||||||||||||||||||||||||
j = Callable[[None], Unpack[Ts]] | ||||||||||||||||||||||||||
self.assertEqual(i.__args__, (type(None), *Ts)) | ||||||||||||||||||||||||||
self.assertEqual(i.__args__, (type(None), Unpack[Ts])) | ||||||||||||||||||||||||||
self.assertEqual(j.__args__, (type(None), Unpack[Ts])) | ||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The |
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
k = Callable[[None], tuple[int, *Ts]] | ||||||||||||||||||||||||||
l = Callable[[None], Tuple[int, Unpack[Ts]]] | ||||||||||||||||||||||||||
|
@@ -1435,8 +1432,6 @@ def g(*args: *Ts): pass | |||||||||||||||||||||||||
self.assertEqual(g.__annotations__, {'args': (*Ts,)[0]}) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
def test_variadic_args_with_ellipsis_annotations_are_correct(self): | ||||||||||||||||||||||||||
Ts = TypeVarTuple('Ts') | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
def a(*args: *tuple[int, ...]): pass | ||||||||||||||||||||||||||
self.assertEqual(a.__annotations__, | ||||||||||||||||||||||||||
{'args': (*tuple[int, ...],)[0]}) | ||||||||||||||||||||||||||
|
@@ -4918,7 +4913,6 @@ def test_overload_registry_repeated(self): | |||||||||||||||||||||||||
# Definitions needed for features introduced in Python 3.6 | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
from test import ann_module, ann_module2, ann_module3, ann_module5, ann_module6 | ||||||||||||||||||||||||||
import asyncio | ||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typing in Python is definitely synchronous ;) |
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
T_a = TypeVar('T_a') | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
@@ -7077,16 +7071,6 @@ class C: | |||||||||||||||||||||||||
self.assertEqual(get_type_hints(C, globals())['classvar'], ClassVar[int]) | ||||||||||||||||||||||||||
self.assertEqual(get_type_hints(C, globals())['const'], Final[int]) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
def test_hash_eq(self): | ||||||||||||||||||||||||||
self.assertEqual(len({Annotated[int, 4, 5], Annotated[int, 4, 5]}), 1) | ||||||||||||||||||||||||||
self.assertNotEqual(Annotated[int, 4, 5], Annotated[int, 5, 4]) | ||||||||||||||||||||||||||
self.assertNotEqual(Annotated[int, 4, 5], Annotated[str, 4, 5]) | ||||||||||||||||||||||||||
self.assertNotEqual(Annotated[int, 4], Annotated[int, 4, 4]) | ||||||||||||||||||||||||||
self.assertEqual( | ||||||||||||||||||||||||||
{Annotated[int, 4, 5], Annotated[int, 4, 5], Annotated[T, 4, 5]}, | ||||||||||||||||||||||||||
{Annotated[int, 4, 5], Annotated[T, 4, 5]} | ||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Comment on lines
-7080
to
-7089
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This test is exactly identical to cpython/Lib/test/test_typing.py Lines 7015 to 7023 in 7894bbe
|
||||||||||||||||||||||||||
def test_cannot_subclass(self): | ||||||||||||||||||||||||||
with self.assertRaisesRegex(TypeError, "Cannot subclass .*Annotated"): | ||||||||||||||||||||||||||
class C(Annotated): | ||||||||||||||||||||||||||
|
@@ -7515,7 +7499,6 @@ class Y(Generic[P, T]): | |||||||||||||||||||||||||
self.assertEqual(B.__args__, ((int, str,), Tuple[bytes, float])) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
def test_var_substitution(self): | ||||||||||||||||||||||||||
T = TypeVar("T") | ||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
cpython/Lib/test/test_typing.py Lines 461 to 472 in 7894bbe
|
||||||||||||||||||||||||||
P = ParamSpec("P") | ||||||||||||||||||||||||||
subst = P.__typing_subst__ | ||||||||||||||||||||||||||
self.assertEqual(subst((int, str)), (int, str)) | ||||||||||||||||||||||||||
|
@@ -7835,7 +7818,7 @@ def test_special_attrs2(self): | |||||||||||||||||||||||||
self.assertEqual(fr.__module__, 'typing') | ||||||||||||||||||||||||||
# Forward refs are currently unpicklable. | ||||||||||||||||||||||||||
for proto in range(pickle.HIGHEST_PROTOCOL + 1): | ||||||||||||||||||||||||||
with self.assertRaises(TypeError) as exc: | ||||||||||||||||||||||||||
with self.assertRaises(TypeError): | ||||||||||||||||||||||||||
pickle.dumps(fr, proto) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
self.assertEqual(SpecialAttrsTests.TypeName.__name__, 'TypeName') | ||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P
here is currently an unused variable.ParamSpec.__typing_subst__
is tested in another place in this file:cpython/Lib/test/test_typing.py
Lines 7528 to 7539 in 7894bbe