2
我在使用django测试中的登录装饰器时遇到了问题。许多测试开始Django测试:在测试用例中使用登录装饰器
self.client.login(username='foo', password='bar')
因此,登录原则上工作;但现在我喜欢这行代码重构为一个装饰login
,只是为了好玩:
def login(fn):
def wrapper(self):
self.client.login(username='foo', password='bar')
return fn(self)
return wrapper
但当时失败的测试表明我的用户“富”甚至self.client.login
返回真没有登录。
还有一件神秘的事情是,当我现在离开装饰器的self.client.login
,使得装饰器除了包装外什么都不做,从装饰的测试方法中正常登录也不再可能了!
我认为测试客户端存在一些上下文或范围问题。你有什么想法是什么探头?这个故事是关于python2.7和django-1.3.1的。