@@ -367,6 +367,41 @@ def test_basic_plain(self):
367
367
self .assertEqual (T , T )
368
368
# T is an instance of TypeVar
369
369
self .assertIsInstance (T , TypeVar )
370
+ self .assertEqual (T .__name__ , 'T' )
371
+ self .assertEqual (T .__constraints__ , ())
372
+ self .assertIs (T .__bound__ , None )
373
+ self .assertIs (T .__covariant__ , False )
374
+ self .assertIs (T .__contravariant__ , False )
375
+ self .assertIs (T .__infer_variance__ , False )
376
+
377
+ def test_attributes (self ):
378
+ T_bound = TypeVar ('T_bound' , bound = int )
379
+ self .assertEqual (T_bound .__name__ , 'T_bound' )
380
+ self .assertEqual (T_bound .__constraints__ , ())
381
+ self .assertIs (T_bound .__bound__ , int )
382
+
383
+ T_constraints = TypeVar ('T_constraints' , int , str )
384
+ self .assertEqual (T_constraints .__name__ , 'T_constraints' )
385
+ self .assertEqual (T_constraints .__constraints__ , (int , str ))
386
+ self .assertIs (T_constraints .__bound__ , None )
387
+
388
+ T_co = TypeVar ('T_co' , covariant = True )
389
+ self .assertEqual (T_co .__name__ , 'T_co' )
390
+ self .assertIs (T_co .__covariant__ , True )
391
+ self .assertIs (T_co .__contravariant__ , False )
392
+ self .assertIs (T_co .__infer_variance__ , False )
393
+
394
+ T_contra = TypeVar ('T_contra' , contravariant = True )
395
+ self .assertEqual (T_contra .__name__ , 'T_contra' )
396
+ self .assertIs (T_contra .__covariant__ , False )
397
+ self .assertIs (T_contra .__contravariant__ , True )
398
+ self .assertIs (T_contra .__infer_variance__ , False )
399
+
400
+ T_infer = TypeVar ('T_infer' , infer_variance = True )
401
+ self .assertEqual (T_infer .__name__ , 'T_infer' )
402
+ self .assertIs (T_infer .__covariant__ , False )
403
+ self .assertIs (T_infer .__contravariant__ , False )
404
+ self .assertIs (T_infer .__infer_variance__ , True )
370
405
371
406
def test_typevar_instance_type_error (self ):
372
407
T = TypeVar ('T' )
@@ -458,6 +493,12 @@ def test_no_bivariant(self):
458
493
with self .assertRaises (ValueError ):
459
494
TypeVar ('T' , covariant = True , contravariant = True )
460
495
496
+ def test_cannot_combine_explicit_and_infer (self ):
497
+ with self .assertRaises (ValueError ):
498
+ TypeVar ('T' , covariant = True , infer_variance = True )
499
+ with self .assertRaises (ValueError ):
500
+ TypeVar ('T' , contravariant = True , infer_variance = True )
501
+
461
502
def test_var_substitution (self ):
462
503
T = TypeVar ('T' )
463
504
subst = T .__typing_subst__
@@ -7812,6 +7853,7 @@ def test_basic_plain(self):
7812
7853
P = ParamSpec ('P' )
7813
7854
self .assertEqual (P , P )
7814
7855
self .assertIsInstance (P , ParamSpec )
7856
+ self .assertEqual (P .__name__ , 'P' )
7815
7857
7816
7858
def test_valid_uses (self ):
7817
7859
P = ParamSpec ('P' )
0 commit comments