Exemple #1
0
    def _verify_special_methods(self, someobj):
        someobj_special_methods = self._fetch_special_methods(someobj)
        our_special_methods = self._fetch_special_methods(self.reference_obj)

        missing = set(our_special_methods).difference(set(someobj_special_methods))
        if missing:
            # someobj is lacking some method we need
            raise SignatureVerificationError, "%s lacks methods: %s" % (someobj, missing)

        for name, method in our_special_methods.items():
            if not is_signature_compatible(method, someobj_special_methods[name]):
                raise SignatureVerificationError, "%s signature for %s is incompatible" % (someobj, method)
Exemple #2
0
 def test_arg_optarg_kwargs_callable_compatible_with_mixed_everything_callable(
         self):
     self.assertEquals(
         True,
         is_signature_compatible(arg_optarg_kwargs_callable,
                                 mixed_everything_callable))
Exemple #3
0
 def test_arg_optarg_kwargs_callable_compatible_with_mixed_everything_callable(self):
     self.assertEquals(True, is_signature_compatible(arg_optarg_kwargs_callable, mixed_everything_callable))
Exemple #4
0
 def test_unboundmethod_signature_is_not_compatible_with_instancemeth(self):
     self.assertFalse(is_signature_compatible(DifferentMethods.instancemeth, self.obj.instancemeth))
Exemple #5
0
 def test_attrfunc_signature_is_not_compatible_with_class_unbound_method(self):
     self.assertFalse(is_signature_compatible(self.obj.attrfunc, DifferentMethods.instancemeth))
Exemple #6
0
 def test_instancemethod_signature_is_compatible_with_instancemethod_signature(self):
     self.assertTrue(is_signature_compatible(self.obj.instancemeth, DifferentMethods.staticmeth))
Exemple #7
0
 def test_bound_method_without_self_is_compatible_with_unbound(self):
     self.assertTrue(is_signature_compatible(self.obj.instancemeth, BoundWithoutSelf.staticmeth))
Exemple #8
0
 def test_static_signature_is_compatible_with_obj_class_sig(self):
     self.assertTrue(is_signature_compatible(self.obj.staticmeth, self.obj.classmeth))
Exemple #9
0
 def test_three_optarg_callable_not_compatible_with_two_optarg_callable_same_names(
         self):
     self.assertEquals(
         False,
         is_signature_compatible(three_optarg_callable,
                                 two_optarg_callable))
Exemple #10
0
 def test_three_arg_callable_compatible_with_optarg_callable_with_diff_names(
         self):
     self.assertEquals(
         True,
         is_signature_compatible(three_arg_callable,
                                 two_arg_one_optarg_callable_other))
Exemple #11
0
 def test_switched_optional_args_retain_compatibility(self):
     self.assertEquals(
         True,
         is_signature_compatible(two_optarg_callable,
                                 two_optarg_callable_switched))
Exemple #12
0
 def test_different_optarg_names_are_not_compatible(self):
     self.assertEquals(
         False,
         is_signature_compatible(two_arg_one_optarg_callable,
                                 two_arg_one_optarg_callable_other))
Exemple #13
0
 def test_kwargs_not_compatible_with_arg_optarg_kwargs(self):
     self.assertEquals(
         False,
         is_signature_compatible(all_kwargs_callable,
                                 arg_optarg_kwargs_callable))
Exemple #14
0
 def test_kwargs_compatible_with_optarg_kwargs(self):
     self.assertEquals(
         True,
         is_signature_compatible(all_kwargs_callable,
                                 optarg_kwargs_callable))
Exemple #15
0
 def test_arg_optarg_kwargs_compatibile_with_kwargs_only(self):
     self.assertEquals(
         True,
         is_signature_compatible(arg_optarg_kwargs_callable,
                                 all_kwargs_callable))
Exemple #16
0
 def test_all_varargs_is_not_compatibile_with_empty(self):
     self.assertEquals(False, is_signature_compatible(all_varargs_callable, empty_callable))
Exemple #17
0
 def test_three_args_varargs_is_compatible_with_three_args_varargs(self):
     self.assertEquals(True, is_signature_compatible(three_args_varargs_callable, three_args_varargs_callable))
Exemple #18
0
 def test_identical_signatures_are_compatible(self):
     self.assertEquals(
         True, is_signature_compatible(two_arg_callable1,
                                       two_arg_callable_2))
Exemple #19
0
 def test_static_signature_is_compatible_with_attrfunc(self):
     self.assertTrue(is_signature_compatible(self.obj.staticmeth, self.obj.attrfunc))
Exemple #20
0
 def test_optional_arg_keeps_signature_compatible(self):
     self.assertEquals(
         True,
         is_signature_compatible(two_arg_callable1,
                                 two_arg_one_optarg_callable))
Exemple #21
0
 def test_classmethod_signature_is_compatible_with_attrfunc(self):
     self.assertTrue(is_signature_compatible(DifferentMethods.classmeth, self.obj.attrfunc))
Exemple #22
0
 def test_three_arg_sig_incompatible_with_two(self):
     self.assertEquals(
         False,
         is_signature_compatible(three_arg_callable, two_arg_callable1))
Exemple #23
0
 def test_attrfunc_signature_is_compatible_with_obj_class_sig(self):
     self.assertTrue(is_signature_compatible(self.obj.attrfunc, self.obj.classmeth))
Exemple #24
0
 def test_two_arg_optarg_incompatible_with_three(self):
     self.assertEquals(
         False,
         is_signature_compatible(two_arg_one_optarg_callable,
                                 three_arg_callable))
Exemple #25
0
 def test_attrfunc_signature_is_compatible_with_instancemeth(self):
     self.assertTrue(is_signature_compatible(self.obj.attrfunc, self.obj.instancemeth))
Exemple #26
0
 def test_two_arg_is_compatible_with_two_optarg(self):
     self.assertEquals(
         True,
         is_signature_compatible(two_arg_callable1, two_optarg_callable))
Exemple #27
0
 def test_vararg_kwargs_incompatible_with_everything_but_itself(self):
     everything_but_varargs_kwargs_callable = filter(lambda x: x.func_name != "varargs_kwargs_callable", everything)
     for func in everything_but_varargs_kwargs_callable:
         self.assertEquals(False, is_signature_compatible(varargs_kwargs_callable, func), "%s is compatible!" % func.func_name)
Exemple #28
0
 def test_two_optarg_is_not_compatible_with_two_arg(self):
     self.assertEquals(
         False,
         is_signature_compatible(two_optarg_callable, two_arg_callable1))
Exemple #29
0
 def test_kwargs_compatible_with_optarg_kwargs(self):
     self.assertEquals(True, is_signature_compatible(all_kwargs_callable, optarg_kwargs_callable))
Exemple #30
0
 def test_any_fixed_arg_compatible_with_all_varargs(self):
     self.assertEquals(
         True,
         is_signature_compatible(two_arg_callable1, all_varargs_callable))
Exemple #31
0
 def test_two_fixed_args_incompatible_three_args_varargs(self):
     self.assertEquals(False, is_signature_compatible(two_arg_callable1, three_args_varargs_callable))
Exemple #32
0
 def test_two_fixed_args_incompatible_three_args_varargs(self):
     self.assertEquals(
         False,
         is_signature_compatible(two_arg_callable1,
                                 three_args_varargs_callable))
Exemple #33
0
 def test_all_varargs_is_compatibile_with_all_varargs(self):
     self.assertEquals(True, is_signature_compatible(all_varargs_callable, all_varargs_callable))
Exemple #34
0
 def test_all_varargs_is_not_compatibile_with_empty(self):
     self.assertEquals(
         False, is_signature_compatible(all_varargs_callable,
                                        empty_callable))
Exemple #35
0
 def test_all_varargs_is_not_compatibile_with_three_args_varargs(self):
     self.assertEquals(False, is_signature_compatible(all_varargs_callable, three_args_varargs_callable))
Exemple #36
0
 def test_all_varargs_is_compatibile_with_all_varargs(self):
     self.assertEquals(
         True,
         is_signature_compatible(all_varargs_callable,
                                 all_varargs_callable))
Exemple #37
0
 def test_static_signature_is_compatible_with_obj_instance_method(self):
     self.assertTrue(is_signature_compatible(self.obj.staticmeth, self.obj.instancemeth))
Exemple #38
0
 def test_three_args_varargs_is_compatible_with_three_args_varargs(self):
     self.assertEquals(
         True,
         is_signature_compatible(three_args_varargs_callable,
                                 three_args_varargs_callable))
Exemple #39
0
 def test_classmethod_signature_is_compatible_with_obj_instance_method(self):
     self.assertTrue(is_signature_compatible(DifferentMethods.classmeth, self.obj.instancemeth))
Exemple #40
0
 def test_all_varargs_is_not_compatibile_with_three_args_varargs(self):
     self.assertEquals(
         False,
         is_signature_compatible(all_varargs_callable,
                                 three_args_varargs_callable))
Exemple #41
0
 def test_classmethod_signature_is_compatible_with_classmethod_signature(self):
     self.assertTrue(is_signature_compatible(DifferentMethods.classmeth, DifferentMethods.staticmeth))
Exemple #42
0
 def test_static_signature_is_compatible_with_obj_class_sig(self):
     self.assertTrue(
         is_signature_compatible(self.obj.staticmeth, self.obj.classmeth))
Exemple #43
0
 def test_instancemethod_signature_is_compatible_with_obj_class_sig(self):
     self.assertTrue(is_signature_compatible(self.obj.instancemeth, self.obj.classmeth))
Exemple #44
0
 def test_static_signature_is_compatible_with_obj_instance_method(self):
     self.assertTrue(
         is_signature_compatible(self.obj.staticmeth,
                                 self.obj.instancemeth))
Exemple #45
0
 def test_instancemethod_signature_is_compatible_with_attrfunc(self):
     self.assertTrue(is_signature_compatible(self.obj.instancemeth, self.obj.attrfunc))
Exemple #46
0
 def test_static_signature_is_compatible_with_attrfunc(self):
     self.assertTrue(
         is_signature_compatible(self.obj.staticmeth, self.obj.attrfunc))
Exemple #47
0
 def test_attrfunc_signature_is_compatible_with_obj_instance_method(self):
     self.assertTrue(is_signature_compatible(self.obj.attrfunc, DifferentMethods.classmeth))
Exemple #48
0
 def test_classmethod_signature_is_compatible_with_obj_instance_method(
         self):
     self.assertTrue(
         is_signature_compatible(DifferentMethods.classmeth,
                                 self.obj.instancemeth))
Exemple #49
0
 def test_attrfunc_signature_is_compatible_with_attrfunc_signature(self):
     self.assertTrue(is_signature_compatible(self.obj.attrfunc, DifferentMethods.staticmeth))
Exemple #50
0
 def test_unbound_method_not_compatible_with_static(self):
     self.assertFalse(
         is_signature_compatible(DifferentMethods.instancemeth,
                                 self.obj.staticmeth))
Exemple #51
0
 def test_unboundmethod_signature_is_compatible_with_class_unbound_method(self):
     self.assertTrue(is_signature_compatible(DifferentMethods.instancemeth, DifferentMethods.instancemeth))
Exemple #52
0
 def test_bound_method_without_self_is_compatible_with_unbound(self):
     self.assertTrue(
         is_signature_compatible(self.obj.instancemeth,
                                 BoundWithoutSelf.staticmeth))
Exemple #53
0
 def test_every_func_compatible_with_varargs_kwargs(self):
     for func in everything:
         self.assertEquals(True, is_signature_compatible(func, varargs_kwargs_callable) )
Exemple #54
0
 def test_classmethod_signature_is_not_compatible_with_class_unbound_method(
         self):
     self.assertFalse(
         is_signature_compatible(self.obj.classmeth,
                                 DifferentMethods.instancemeth))
Exemple #55
0
 def test_three_arg_optarg_callable_compatible_with_mixed_everything_callable(self):
     self.assertEquals(False, is_signature_compatible(three_optarg_callable, mixed_everything_callable))
Exemple #56
0
 def test_classmethod_signature_is_compatible_with_classmethod_signature(
         self):
     self.assertTrue(
         is_signature_compatible(self.obj.classmeth,
                                 DifferentMethods.staticmeth))
Exemple #57
0
 def test_arg_optarg_kwargs_compatibile_with_kwargs_only(self):
     self.assertEquals(True, is_signature_compatible(arg_optarg_kwargs_callable, all_kwargs_callable))
Exemple #58
0
 def test_classmethod_signature_is_compatible_with_attrfunc(self):
     self.assertTrue(
         is_signature_compatible(self.obj.classmeth, self.obj.attrfunc))
Exemple #59
0
 def test_kwargs_not_compatible_with_arg_optarg_kwargs(self):
     self.assertEquals(False, is_signature_compatible(all_kwargs_callable, arg_optarg_kwargs_callable))
Exemple #60
0
 def test_instancemethod_signature_is_compatible_with_obj_class_sig(self):
     self.assertTrue(
         is_signature_compatible(self.obj.instancemeth, self.obj.classmeth))