["python","unit-testing","scope"]
Access self from decorator

In setUp() method of unittest I've setup some self variables, which are later referenced in actual tests. I've also created a decorator to do some logging. Is there a way in which I can access those self variables from decorator? For the sake of simplicity, I'm posting this code: def decorator(func): def _decorator(*args, **kwargs): # access a from TestSample func(*args, **kwargs) return _decorator class TestSample(unittest.TestCase): def setUp(self): self.a = 10 def tearDown(self): # tear down code @decorator def test_a(self): # testing code goes here What would be the best way of accessing a (set in setUp()) from decorator?
Since you're decorating a method, and self is a method argument, your decorator has access to self at runtime. Obviously not at parsetime, because there are no objects yet, just a class. So you change your decorator to: def decorator(func): def _decorator(self, *args, **kwargs): # access a from TestSample print 'self is %s' % self return func(self, *args, **kwargs) return _decorator