(self)
| 8287 | y: str |
| 8288 | |
| 8289 | def test_generic(self): |
| 8290 | class X(NamedTuple, Generic[T]): |
| 8291 | x: T |
| 8292 | self.assertEqual(X.__bases__, (tuple, Generic)) |
| 8293 | self.assertEqual(X.__orig_bases__, (NamedTuple, Generic[T])) |
| 8294 | self.assertEqual(X.__mro__, (X, tuple, Generic, object)) |
| 8295 | |
| 8296 | class Y(Generic[T], NamedTuple): |
| 8297 | x: T |
| 8298 | self.assertEqual(Y.__bases__, (Generic, tuple)) |
| 8299 | self.assertEqual(Y.__orig_bases__, (Generic[T], NamedTuple)) |
| 8300 | self.assertEqual(Y.__mro__, (Y, Generic, tuple, object)) |
| 8301 | |
| 8302 | for G in X, Y: |
| 8303 | with self.subTest(type=G): |
| 8304 | self.assertEqual(G.__parameters__, (T,)) |
| 8305 | self.assertEqual(G[T].__args__, (T,)) |
| 8306 | self.assertEqual(get_args(G[T]), (T,)) |
| 8307 | A = G[int] |
| 8308 | self.assertIs(A.__origin__, G) |
| 8309 | self.assertEqual(A.__args__, (int,)) |
| 8310 | self.assertEqual(get_args(A), (int,)) |
| 8311 | self.assertEqual(A.__parameters__, ()) |
| 8312 | |
| 8313 | a = A(3) |
| 8314 | self.assertIs(type(a), G) |
| 8315 | self.assertEqual(a.x, 3) |
| 8316 | |
| 8317 | with self.assertRaises(TypeError): |
| 8318 | G[int, str] |
| 8319 | |
| 8320 | def test_generic_pep695(self): |
| 8321 | class X[T](NamedTuple): |
nothing calls this directly
no test coverage detected