gpt4 book ai didi

python - Django 测试 : Using a login decorator for test cases

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:56 29 4
gpt4 key购买 nike

我在 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 返回 True,用户 'foo' 也没有登录。

一件更神秘的事情是,当我现在从装饰器中离开 self.client.login 时,装饰器除了包装之外什么都不做,那么从装饰测试方法中的正常登录是不可能的也不再!

我认为测试客户端存在一些上下文或范围问题。你知道探针是什么吗? P.S.: 这个故事是关于 python2.7 和 django-1.3.1 的。

最佳答案

请参阅python-unittest-cant-call-decorated-test

替代方案?

因为它总是同一个用户,所以我在设置中有它。

class SimpleTest(TestCase):
def setUp(self):
self.client.login(username='foo', password='bar')

这是一个有趣的 gist - Lazy man's Django testcase允许范围登录。

关于python - Django 测试 : Using a login decorator for test cases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932950/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com