Source code for peek_plugin_base.server.PluginServerEntryHookInheritenceTest

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 PluginServerEntryHookInheritenceTest(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))