@@ -5080,9 +5080,19 @@ def test_inline_not_a_dict(self):
50805080 with self .assertRaises (TypeError ):
50815081 TypedDict ["not_a_dict" ]
50825082
5083+ # a tuple of elements isn't allowed, even if the first element is a dict:
5084+ with self .assertRaises (TypeError ):
5085+ TypedDict [({"key" : int },)]
5086+
50835087 def test_inline_empty (self ):
50845088 TD = TypedDict [{}]
5089+ self .assertTrue (TD .__total__ )
5090+ self .assertTrue (TD .__closed__ )
5091+ self .assertEqual (TD .__extra_items__ , NoExtraItems )
50855092 self .assertEqual (TD .__required_keys__ , set ())
5093+ self .assertEqual (TD .__optional_keys__ , set ())
5094+ self .assertEqual (TD .__readonly_keys__ , set ())
5095+ self .assertEqual (TD .__mutable_keys__ , set ())
50865096
50875097 def test_inline (self ):
50885098 TD = TypedDict [{
@@ -5096,9 +5106,15 @@ def test_inline(self):
50965106 self .assertNotIsSubclass (TD , collections .abc .Sequence )
50975107 self .assertTrue (is_typeddict (TD ))
50985108 self .assertEqual (TD .__name__ , "<inline TypedDict>" )
5109+ self .assertEqual (
5110+ TD .__annotations__ ,
5111+ {"a" : int , "b" : Required [int ], "c" : NotRequired [int ], "d" : ReadOnly [int ]},
5112+ )
50995113 self .assertEqual (TD .__module__ , __name__ )
51005114 self .assertEqual (TD .__bases__ , (dict ,))
5101- self .assertEqual (TD .__total__ , True )
5115+ self .assertTrue (TD .__total__ )
5116+ self .assertTrue (TD .__closed__ )
5117+ self .assertEqual (TD .__extra_items__ , NoExtraItems )
51025118 self .assertEqual (TD .__required_keys__ , {"a" , "b" , "d" })
51035119 self .assertEqual (TD .__optional_keys__ , {"c" })
51045120 self .assertEqual (TD .__readonly_keys__ , {"d" })
0 commit comments