# Python unit testing of decorators
import unittest
def collect(collector):
def wrapper(func):
def inner(*args,**kwargs):
ret = func(*args,**kwargs)
collector.append((func.__name__,args,kwargs,ret))
return ret
return inner
return wrapper
collector = []
def add(x,y):
return x + y
def mult(x,y):
return x * y
class TestCollector(unittest.TestCase):
def testCollection(self):
collector = []
collect(collector)(add)(3,5)
collect(collector)(mult)(4,6)
self.assertEquals(collector,[('add', (3, 5), {}, 8), ('mult', (4, 6), {}, 24)])Add a code snippet to your website: www.paste.org