[3.13] typing: Add missing test case for Protocol inheritance (GH-132597) (#132603)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
Miss Islington (bot) 2025-04-16 17:45:29 +02:00 committed by GitHub
parent ff3f6588c3
commit 88d95c3529
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2935,6 +2935,23 @@ class ProtocolTests(BaseTestCase):
self.assertNotIsInstance(D(), E)
self.assertNotIsInstance(E(), D)
def test_inheritance_from_object(self):
# Inheritance from object is specifically allowed, unlike other nominal classes
class P(Protocol, object):
x: int
self.assertEqual(typing.get_protocol_members(P), {'x'})
class OldGeneric(Protocol, Generic[T], object):
y: T
self.assertEqual(typing.get_protocol_members(OldGeneric), {'y'})
class NewGeneric[T](Protocol, object):
z: T
self.assertEqual(typing.get_protocol_members(NewGeneric), {'z'})
def test_no_instantiation(self):
class P(Protocol): pass