Skip to content
Prev Previous commit
Next Next commit
More tests
  • Loading branch information
adriangb committed Apr 23, 2023
commit 631d428317988c74f1a0277cde0392a19698aa56
39 changes: 9 additions & 30 deletions Lib/test/test_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -6698,42 +6698,18 @@ def test_copy_and_pickle(self):
def test_orig_bases(self):
T = TypeVar('T')

class Parent(NamedTuple):
class SimpleNamedTuple(NamedTuple):
pass

class Child(Parent):
pass

class OtherChild(Parent):
pass

class MixedChild(Child, OtherChild, Parent):
class GenericNamedTuple(NamedTuple, Generic[T]):
pass

class GenericParent(NamedTuple, Generic[T]):
pass
self.assertEqual(SimpleNamedTuple.__orig_bases__, (NamedTuple,))
self.assertEqual(GenericNamedTuple.__orig_bases__, (NamedTuple, Generic[T]))

class GenericChild(GenericParent[int]):
pass
CallNamedTuple = NamedTuple('CallNamedTuple', [])

class OtherGenericChild(GenericParent[str]):
pass

class MixedGenericChild(GenericChild, OtherGenericChild, GenericParent[float]):
pass

class MultipleGenericBases(GenericParent[int], GenericParent[float]):
pass

self.assertEqual(Parent.__orig_bases__, (NamedTuple,))
self.assertEqual(Child.__orig_bases__, (Parent,))
self.assertEqual(OtherChild.__orig_bases__, (Parent,))
self.assertEqual(MixedChild.__orig_bases__, (Child, OtherChild, Parent,))
self.assertEqual(GenericParent.__orig_bases__, (NamedTuple, Generic[T]))
self.assertEqual(GenericChild.__orig_bases__, (GenericParent[int],))
self.assertEqual(OtherGenericChild.__orig_bases__, (GenericParent[str],))
self.assertEqual(MixedGenericChild.__orig_bases__, (GenericChild, OtherGenericChild, GenericParent[float]))
self.assertEqual(MultipleGenericBases.__orig_bases__, (GenericParent[int], GenericParent[float]))
self.assertEqual(CallNamedTuple.__orig_bases__, (NamedTuple,))


class TypedDictTests(BaseTestCase):
Expand Down Expand Up @@ -7196,6 +7172,8 @@ class MixedGenericChild(GenericChild, OtherGenericChild, GenericParent[float]):
class MultipleGenericBases(GenericParent[int], GenericParent[float]):
pass

CallTypedDict = TypedDict('CallTypedDict', {})

self.assertEqual(Parent.__orig_bases__, (TypedDict,))
self.assertEqual(Child.__orig_bases__, (Parent,))
self.assertEqual(OtherChild.__orig_bases__, (Parent,))
Expand All @@ -7205,6 +7183,7 @@ class MultipleGenericBases(GenericParent[int], GenericParent[float]):
self.assertEqual(OtherGenericChild.__orig_bases__, (GenericParent[str],))
self.assertEqual(MixedGenericChild.__orig_bases__, (GenericChild, OtherGenericChild, GenericParent[float]))
self.assertEqual(MultipleGenericBases.__orig_bases__, (GenericParent[int], GenericParent[float]))
self.assertEqual(CallTypedDict.__orig_bases__, (TypedDict,))


class RequiredTests(BaseTestCase):
Expand Down