mirror of https://github.com/python/cpython.git
[3.11] typing: Add more tests for TypeVar (GH-104571) (#104577)
During the PEP 695 implementation at one point I made
TypeVar.__name__ return garbage, and all of test_typing passed.
So I decided to add a few more tests.
(cherry picked from commit 26931944dd
)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
parent
133bf0927e
commit
f106aef24a
|
@ -364,6 +364,32 @@ def test_basic_plain(self):
|
|||
self.assertEqual(T, T)
|
||||
# T is an instance of TypeVar
|
||||
self.assertIsInstance(T, TypeVar)
|
||||
self.assertEqual(T.__name__, 'T')
|
||||
self.assertEqual(T.__constraints__, ())
|
||||
self.assertIs(T.__bound__, None)
|
||||
self.assertIs(T.__covariant__, False)
|
||||
self.assertIs(T.__contravariant__, False)
|
||||
|
||||
def test_attributes(self):
|
||||
T_bound = TypeVar('T_bound', bound=int)
|
||||
self.assertEqual(T_bound.__name__, 'T_bound')
|
||||
self.assertEqual(T_bound.__constraints__, ())
|
||||
self.assertIs(T_bound.__bound__, int)
|
||||
|
||||
T_constraints = TypeVar('T_constraints', int, str)
|
||||
self.assertEqual(T_constraints.__name__, 'T_constraints')
|
||||
self.assertEqual(T_constraints.__constraints__, (int, str))
|
||||
self.assertIs(T_constraints.__bound__, None)
|
||||
|
||||
T_co = TypeVar('T_co', covariant=True)
|
||||
self.assertEqual(T_co.__name__, 'T_co')
|
||||
self.assertIs(T_co.__covariant__, True)
|
||||
self.assertIs(T_co.__contravariant__, False)
|
||||
|
||||
T_contra = TypeVar('T_contra', contravariant=True)
|
||||
self.assertEqual(T_contra.__name__, 'T_contra')
|
||||
self.assertIs(T_contra.__covariant__, False)
|
||||
self.assertIs(T_contra.__contravariant__, True)
|
||||
|
||||
def test_typevar_instance_type_error(self):
|
||||
T = TypeVar('T')
|
||||
|
@ -7426,6 +7452,7 @@ def test_basic_plain(self):
|
|||
P = ParamSpec('P')
|
||||
self.assertEqual(P, P)
|
||||
self.assertIsInstance(P, ParamSpec)
|
||||
self.assertEqual(P.__name__, 'P')
|
||||
|
||||
def test_valid_uses(self):
|
||||
P = ParamSpec('P')
|
||||
|
|
Loading…
Reference in New Issue