@@ -5296,19 +5296,27 @@ class X(NamedTuple, Generic[T]):
5296
5296
self .assertEqual (X .__bases__ , (tuple , Generic ))
5297
5297
self .assertEqual (X .__orig_bases__ , (NamedTuple , Generic [T ]))
5298
5298
self .assertEqual (X .__mro__ , (X , tuple , Generic , object ))
5299
- self .assertEqual (X .__parameters__ , (T ,))
5300
5299
5301
- A = X [int ]
5302
- self .assertIs (A .__origin__ , X )
5303
- self .assertEqual (A .__args__ , (int ,))
5304
- self .assertEqual (A .__parameters__ , ())
5305
-
5306
- a = A (3 )
5307
- self .assertIs (type (a ), X )
5308
- self .assertEqual (a .x , 3 )
5300
+ class Y (Generic [T ], NamedTuple ):
5301
+ x : T
5302
+ self .assertEqual (Y .__bases__ , (Generic , tuple ))
5303
+ self .assertEqual (Y .__orig_bases__ , (Generic [T ], NamedTuple ))
5304
+ self .assertEqual (Y .__mro__ , (Y , Generic , tuple , object ))
5305
+
5306
+ for G in X , Y :
5307
+ with self .subTest (type = G ):
5308
+ self .assertEqual (G .__parameters__ , (T ,))
5309
+ A = G [int ]
5310
+ self .assertIs (A .__origin__ , G )
5311
+ self .assertEqual (A .__args__ , (int ,))
5312
+ self .assertEqual (A .__parameters__ , ())
5313
+
5314
+ a = A (3 )
5315
+ self .assertIs (type (a ), G )
5316
+ self .assertEqual (a .x , 3 )
5309
5317
5310
- with self .assertRaises (TypeError )
63C5
:
5311
- X [int , str ]
5318
+ with self .assertRaises (TypeError ):
5319
+ G [int , str ]
5312
5320
5313
5321
def test_namedtuple_keyword_usage (self ):
5314
5322
LocalEmployee = NamedTuple ("LocalEmployee" , name = str , age = int )
0 commit comments