gpt4 book ai didi

python - django allauth登录测试无法正确登录

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:15 24 4
gpt4 key购买 nike

我正在尝试为 django allauth 编写登录测试,但尽管应用程序工作正常并且我可以登录,但当我编写登录测试时,它无法正确登录,并且出现断言错误响应没有按预期重定向:响应代码为 200(预期为 302)
302 != 200
因为验证错误“您指定的电子邮件地址和/或密码不正确”

(当前 test_login 失败,但其他两个测试通过)

在这里查看 django all-auth 中的测试: https://github.com/pennersr/django-allauth/blob/master/allauth/account/tests.py我可以看到他们在测试登录时还创建了一个 EmailAddress 对象 - 我不确定为什么或者是否需要这样做?

class TestLoginView(TestCase):

def setUp(self):
self.client = Client()
self.username = "test@test.com"
self.password = "password"
user = get_user_model().objects.create_user(self.username, self.password)
# EmailAddress.objects.create(user=user, email=self.username, primary=True, verified=True)

def test_login(self):
response = self.client.post(reverse(
settings.LOGIN_URL), {"login": self.username, "password": self.password}
)
self.assertRedirects(response, settings.LOGIN_REDIRECT_URL, fetch_redirect_response=False)

def test_wrong_login(self):
response = self.client.post(reverse(
settings.LOGIN_URL), {"login": "bad@login.com", "password": "wrong"}
)
validation_error = 'The e-mail address and/or password you specified are not correct'
assert validation_error in response.content.decode('utf-8')

def test_redirect_when_authenticated(self):
self.client.force_login(self.user)
resp = self.client.get(reverse(settings.LOGIN_URL))
url = settings.LOGIN_REDIRECT_URL + '/' + self.username + '/' + 'detail'
self.assertRedirects(resp, url, fetch_redirect_response=False)

最佳答案

将用户创建更改为使用关键字参数修复了它,即:

self.user = get_user_model().objects.create_user(username=self.username, password=self.password)

或者,您也可以放弃单独的电子邮件模型创建,然后执行

get_user_model().objects.create_user(username=username,  email=username, password=password)

关于python - django allauth登录测试无法正确登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150862/

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