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