def weakener(): def call(func, *args, **kw): return len(args) return decorator.weak_signature_decorator(call)
def sig_changer(): def call(func, a, b): return func(b) return decorator.decorator(call, (["a", "b"], None, None, None)) @sig_changer() def new_sig(a): return a def simple(func, *args, **kw): return func(*args, **kw) + 1 simple = decorator.decorator(simple) def simple_weakener(func, *args, **kw): return len(args) simple_weakener = decorator.weak_signature_decorator(simple_weakener) def simple_weakling(): pass simple_weakling = simple_weakener(simple_weakling) def simple_adder1(a): return a simple_adder1 = simple(simple_adder1) class TestDecorator(unittest.TestCase): def test_preservation(self): for key, value in bar.__dict__.iteritems(): self.failUnless(key in foo.__dict__) self.failUnless(value == foo.__dict__[key])