Dostęp do siebie z dekoratora
W metodzie setUp() unittest ustawiłem kilka zmiennych self , które są później przywoływane w rzeczywistych testach. Stworzyłem też dekoratora do wycinania drzew. Czy jest jakiś sposób, w jaki mogę uzyskać dostęp do tych zmiennych self z dekoratora?
Dla uproszczenia zamieszczam ten kod:
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
Jaki byłby najlepszy sposób dostępu a (set in setUp()) z dekoratora?
51
1 answers
Ponieważ dekorujesz metodę, a {[1] } jest argumentem metody, Twój dekorator ma dostęp do self
w czasie wykonywania. Oczywiście nie w parsetime, ponieważ nie ma jeszcze obiektów, tylko Klasa.
Więc zmieniasz dekoratora na:
def decorator(func):
def _decorator(self, *args, **kwargs):
# access a from TestSample
print 'self is %s' % self
func(self, *args, **kwargs)
return _decorator
85
Author: Dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-28 23:07:37
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-28 23:07:37