../
Contract verification in Python
import zope.interface.verify
class ITest(zope.interface.Interface):
def foo(arg1): pass
def bar(): pass
class Test(object):
zope.interface.implements(ITest)
def foo(self): pass
class Test2(object):
zope.interface.implements(ITest)
def foo(self, arg1): pass
class Test3(object):
zope.interface.implements(ITest)
def foo(self, arg1): pass
def bar(self): pass
for cls in (Test, Test2, Test3):
try:
if zope.interface.verify.verifyClass(ITest, cls):
print "OK: %s correctly implements %s" % (cls.__name__, ITest.__name__)
except Exception, err:
print "Error detected with %s's implementation: %s" % (cls.__name__, err)