@@ -5956,7 +5956,7 @@ def __len__(self):
59565956 return 0
59575957
59585958 self .assertEqual (len (MMC ()), 0 )
5959- assert callable (MMC .update )
5959+ self . assertTrue ( callable (MMC .update ) )
59605960 self .assertIsInstance (MMC (), typing .Mapping )
59615961
59625962 class MMB (typing .MutableMapping [KT , VT ]):
@@ -6151,8 +6151,8 @@ def foo(a: A) -> Optional[BaseException]:
61516151 else :
61526152 return a ()
61536153
6154- assert isinstance (foo (KeyboardInterrupt ), KeyboardInterrupt )
6155- assert foo (None ) is None
6154+ self . assertIsInstance (foo (KeyboardInterrupt ), KeyboardInterrupt )
6155+ self . assertIsNone ( foo (None ))
61566156
61576157
61586158class TestModules (TestCase ):
@@ -6483,6 +6483,10 @@ def test_basics_functional_syntax(self):
64836483 self .assertEqual (Emp .__bases__ , (dict ,))
64846484 self .assertEqual (Emp .__annotations__ , {'name' : str , 'id' : int })
64856485 self .assertEqual (Emp .__total__ , True )
6486+ self .assertEqual (Emp .__required_keys__ , {'name' , 'id' })
6487+ self .assertIsInstance (Emp .__required_keys__ , frozenset )
6488+ self .assertEqual (Emp .__optional_keys__ , set ())
6489+ self .assertIsInstance (Emp .__optional_keys__ , frozenset )
64866490
64876491 def test_basics_keywords_syntax (self ):
64886492 with self .assertWarns (DeprecationWarning ):
@@ -6585,7 +6589,9 @@ def test_total(self):
65856589 self .assertEqual (D (x = 1 ), {'x' : 1 })
65866590 self .assertEqual (D .__total__ , False )
65876591 self .assertEqual (D .__required_keys__ , frozenset ())
6592+ self .assertIsInstance (D .__required_keys__ , frozenset )
65886593 self .assertEqual (D .__optional_keys__ , {'x' })
6594+ self .assertIsInstance (D .__optional_keys__ , frozenset )
65896595
65906596 self .assertEqual (Options (), {})
65916597 self .assertEqual (Options (log_level = 2 ), {'log_level' : 2 })
@@ -6597,8 +6603,10 @@ def test_optional_keys(self):
65976603 class Point2Dor3D (Point2D , total = False ):
65986604 z : int
65996605
6600- assert Point2Dor3D .__required_keys__ == frozenset (['x' , 'y' ])
6601- assert Point2Dor3D .__optional_keys__ == frozenset (['z' ])
6606+ self .assertEqual (Point2Dor3D .__required_keys__ , frozenset (['x' , 'y' ]))
6607+ self .assertIsInstance (Point2Dor3D .__required_keys__ , frozenset )
6608+ self .assertEqual (Point2Dor3D .__optional_keys__ , frozenset (['z' ]))
6609+ self .assertIsInstance (Point2Dor3D .__optional_keys__ , frozenset )
66026610
66036611 def test_keys_inheritance (self ):
66046612 class BaseAnimal (TypedDict ):
@@ -6611,26 +6619,26 @@ class Animal(BaseAnimal, total=False):
66116619 class Cat (Animal ):
66126620 fur_color : str
66136621
6614- assert BaseAnimal .__required_keys__ == frozenset (['name' ])
6615- assert BaseAnimal .__optional_keys__ == frozenset ([])
6616- assert BaseAnimal .__annotations__ == {'name' : str }
6622+ self . assertEqual ( BaseAnimal .__required_keys__ , frozenset (['name' ]) )
6623+ self . assertEqual ( BaseAnimal .__optional_keys__ , frozenset ([]) )
6624+ self . assertEqual ( BaseAnimal .__annotations__ , {'name' : str })
66176625
6618- assert Animal .__required_keys__ == frozenset (['name' ])
6619- assert Animal .__optional_keys__ == frozenset (['tail' , 'voice' ])
6620- assert Animal .__annotations__ == {
6626+ self . assertEqual ( Animal .__required_keys__ , frozenset (['name' ]) )
6627+ self . assertEqual ( Animal .__optional_keys__ , frozenset (['tail' , 'voice' ]) )
6628+ self . assertEqual ( Animal .__annotations__ , {
66216629 'name' : str ,
66226630 'tail' : bool ,
66236631 'voice' : str ,
6624- }
6632+ })
66256633
6626- assert Cat .__required_keys__ == frozenset (['name' , 'fur_color' ])
6627- assert Cat .__optional_keys__ == frozenset (['tail' , 'voice' ])
6628- assert Cat .__annotations__ == {
6634+ self . assertEqual ( Cat .__required_keys__ , frozenset (['name' , 'fur_color' ]) )
6635+ self . assertEqual ( Cat .__optional_keys__ , frozenset (['tail' , 'voice' ]) )
6636+ self . assertEqual ( Cat .__annotations__ , {
66296637 'fur_color' : str ,
66306638 'name' : str ,
66316639 'tail' : bool ,
66326640 'voice' : str ,
6633- }
6641+ })
66346642
66356643 def test_required_notrequired_keys (self ):
66366644 self .assertEqual (NontotalMovie .__required_keys__ ,
@@ -6840,11 +6848,11 @@ class C(B[int]):
68406848 self .assertEqual (C .__total__ , True )
68416849 self .assertEqual (C .__optional_keys__ , frozenset (['b' ]))
68426850 self .assertEqual (C .__required_keys__ , frozenset (['a' , 'c' ]))
6843- assert C .__annotations__ == {
6851+ self . assertEqual ( C .__annotations__ , {
68446852 'a' : T ,
68456853 'b' : KT ,
68466854 'c' : int ,
6847- }
6855+ })
68486856 with self .assertRaises (TypeError ):
68496857 C [str ]
68506858
@@ -6859,11 +6867,11 @@ class Point3D(Point2DGeneric[T], Generic[T, KT]):
68596867 self .assertEqual (Point3D .__total__ , True )
68606868 self .assertEqual (Point3D .__optional_keys__ , frozenset ())
68616869 self .assertEqual (Point3D .__required_keys__ , frozenset (['a' , 'b' , 'c' ]))
6862- assert Point3D .__annotations__ == {
6870+ self . assertEqual ( Point3D .__annotations__ , {
68636871 'a' : T ,
68646872 'b' : T ,
68656873 'c' : KT ,
6866- }
6874+ })
68676875 self .assertEqual (Point3D [int , str ].__origin__ , Point3D )
68686876
68696877 with self .assertRaises (TypeError ):
@@ -6890,11 +6898,11 @@ class WithImplicitAny(B):
68906898 self .assertEqual (WithImplicitAny .__total__ , True )
68916899 self .assertEqual (WithImplicitAny .__optional_keys__ , frozenset (['b' ]))
68926900 self .assertEqual (WithImplicitAny .__required_keys__ , frozenset (['a' , 'c' ]))
6893- assert WithImplicitAny .__annotations__ == {
6901+ self . assertEqual ( WithImplicitAny .__annotations__ , {
68946902 'a' : T ,
68956903 'b' : KT ,
68966904 'c' : int ,
6897- }
6905+ })
68986906 with self .assertRaises (TypeError ):
68996907 WithImplicitAny [str ]
69006908
0 commit comments