https://github.com/python/cpython/commit/72da4a445867648ee668bfc68a9bb659dfebe658
commit: 72da4a445867648ee668bfc68a9bb659dfebe658
branch: main
author: Jelle Zijlstra <[email protected]>
committer: JelleZijlstra <[email protected]>
date: 2025-04-16T08:21:27-07:00
summary:
typing: Add missing test case for Protocol inheritance (#132597)
files:
M Lib/test/test_typing.py
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index 5b05ebe8702015..32f12a3f8b22f1 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -2933,6 +2933,23 @@ class E(C, BP): pass
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
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]