File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed
Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -698,6 +698,18 @@ def test_match_args(self):
698698 Point = namedtuple ('Point' , 'x y' )
699699 self .assertEqual (Point .__match_args__ , ('x' , 'y' ))
700700
701+ def test_non_generic_subscript (self ):
702+ # For backward compatibility, subscription works
703+ # on arbitrary named tuple types.
704+ Group = collections .namedtuple ('Group' , 'key group' )
705+ A = Group [int , list [int ]]
706+ self .assertEqual (A .__origin__ , Group )
707+ self .assertEqual (A .__parameters__ , ())
708+ self .assertEqual (A .__args__ , (int , list [int ]))
709+ a = A (1 , [2 ])
710+ self .assertIs (type (a ), Group )
711+ self .assertEqual (a , (1 , [2 ]))
712+
701713
702714################################################################################
703715### Abstract Base Classes
Original file line number Diff line number Diff line change @@ -5736,6 +5736,20 @@ class Y(Generic[T], NamedTuple):
57365736 with self .assertRaises (TypeError ):
57375737 G [int , str ]
57385738
5739+ def test_non_generic_subscript (self ):
5740+ # For backward compatibility, subscription works
5741+ # on arbitrary NamedTuple types.
5742+ class Group (NamedTuple ):
5743+ key : T
5744+ group : list [T ]
5745+ A = Group [int ]
5746+ self .assertEqual (A .__origin__ , Group )
5747+ self .assertEqual (A .__parameters__ , ())
5748+ self .assertEqual (A .__args__ , (int ,))
5749+ a = A (1 , [2 ])
5750+ self .assertIs (type (a ), Group )
5751+ self .assertEqual (a , (1 , [2 ]))
5752+
57395753 def test_namedtuple_keyword_usage (self ):
57405754 LocalEmployee = NamedTuple ("LocalEmployee" , name = str , age = int )
57415755 nick = LocalEmployee ('Nick' , 25 )
You can’t perform that action at this time.
0 commit comments