Source code for peek_plugin_base.server.PluginLogicEntryHookInheritenceTest

import unittest
from abc import ABCMeta, abstractproperty


[docs]class MyABC(metaclass=ABCMeta): @abstractproperty def propA(self): pass
[docs]class MyMixin(metaclass=ABCMeta): @abstractproperty def propB(self): pass
[docs]class MyClassNoPropA(MyABC, MyMixin): @property def propB(self): return "b"
[docs]class MyClassNoPropB(MyABC, MyMixin): @property def propA(self): return "a"
[docs]class MyClass(MyABC, MyMixin): @property def propA(self): return "a" @property def propB(self): return "b"
[docs]class PluginLogicEntryHookInheritenceTest(unittest.TestCase):
[docs] def testPropANotImplemeneted(self): self.assertRaises(TypeError, lambda: MyClassNoPropA())
[docs] def testPropBNotImplemeneted(self): self.assertRaises(TypeError, lambda: MyClassNoPropB())
[docs] def testIsInstance(self): myClass = MyClass() self.assertTrue(isinstance(myClass, MyABC)) self.assertTrue(isinstance(myClass, MyMixin))