8000 Add tests for different order of bases, · python/cpython@0f6fcee · GitHub
[go: up one dir, main page]

Skip to content

Commit 0f6fcee

Browse files
Add tests for different order of bases,
1 parent 6c1fb73 commit 0f6fcee

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed
< 10000 button class="Button Button--iconOnly Button--invisible flex-shrink-0 flex-order-1" aria-label="Collapse file: Lib/test/test_typing.py">

Lib/test/test_typing.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5296,19 +5296,27 @@ class X(NamedTuple, Generic[T]):
52965296
self.assertEqual(X.__bases__, (tuple, Generic))
52975297
self.assertEqual(X.__orig_bases__, (NamedTuple, Generic[T]))
52985298
self.assertEqual(X.__mro__, (X, tuple, Generic, object))
5299-
self.assertEqual(X.__parameters__, (T,))
53005299

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)
53095317

5310-
with self.assertRaises(TypeError) 63C5 :
5311-
X[int, str]
5318+
with self.assertRaises(TypeError):
5319+
G[int, str]
53125320

53135321
def test_namedtuple_keyword_usage(self):
53145322
LocalEmployee = NamedTuple("LocalEmployee", name=str, age=int)

0 commit comments

Comments
 (0)
0