def test_untyped_return_class(self): class UntypedReturnClass(object): def method(self): pass self.assertFalse(implements(UntypedReturnClass, TypedReturnInterface))
def test_wrong_return_type(self): class WrongReturnTypeClass(object): @returns(str) def method(self): return "" self.assertFalse(implements(WrongReturnTypeClass, TypedReturnInterface))
def test_wrongly_typed_args_class(self): class WrongArgTypesClass(object): def method(self, n): pass self.assertFalse(implements(WrongArgTypesClass, TypedArgsInterface))
def test_correct_return_type(self): class CorrectReturnTypeClass(object): @returns(int) def method(self): return 1 assert implements(CorrectReturnTypeClass, TypedReturnInterface)
def test_correct_args_class(self): class CorrectArgsClass(object): @expects(int) def method(self, n): pass assert implements(CorrectArgsClass, TypedArgsInterface)
def test_untyped_args_class(self): class UntypedArgsClass(object): def method(self, n): pass self.assertFalse(implements(UntypedArgsClass, TypedArgsInterface))
def test_optarg_iface_vs_optarg_class(self): class SimpleClassWithOptArg(object): def method(self, arg = 1): pass assert implements(SimpleClassWithOptArg, OptArgInterface)
def test_optarg_iface_vs_noarg_class(self): self.assertFalse(implements(SimpleClass, OptArgInterface))
def test_optarg_iface_vs_arg_class(self): class SimpleClassWithArg(object): def method(self, arg): pass self.assertFalse(implements(SimpleClassWithArg, OptArgInterface))
def test_basic_interface(self): self.assertTrue(implements(SimpleClass, SimpleInterface))
def test_basic_interface_by_meta(self): self.assertTrue(implements(SimpleClass, SimpleInterfaceByMeta))