def test_interface_abc_detection(self):
@six.add_metaclass(abc.ABCMeta)
class IABC(object):
@abc.abstractmethod
def foo(self):
pass
@abc.abstractproperty
def bar(self):
return None
class EmptyABCPI(IABC, pure_interface.PureInterface):
pass
class PIEmptyABC(pure_interface.PureInterface, IABC):
pass
self.assertTrue(EmptyABCPI._pi.type_is_pure_interface)
self.assertTrue(PIEmptyABC._pi.type_is_pure_interface)
if six.PY3:
self.assertTrue('foo' in EmptyABCPI._pi.interface_method_names)
self.assertTrue('bar' in EmptyABCPI._pi.interface_property_names)
self.assertTrue('foo' in PIEmptyABC._pi.interface_method_names)
self.assertTrue('bar' in PIEmptyABC._pi.interface_property_names)
with self.assertRaises(TypeError):
EmptyABCPI()
with self.assertRaises(TypeError):
PIEmptyABC()
test_implementation_checks.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录