gpt4 book ai didi

python - 登录 selenium 测试 django 所有身份验证失败

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

我使用 django-allauth==0.32.0 进行用户身份验证,当我手动执行此操作(注册/登录/注销/等)时它可以工作。

我的模型.py:

class Profile(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user = models.OneToOneField(User, on_delete=models.CASCADE)

信号.py:

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()

我的观点.py:

@login_required(login_url='/accounts/login/')
def CategoryView(request):
context = {
'data': 'data',
}
return render(request, 'myapp/index.html',context)

现在,我正在尝试使用 Selenium StaticLiveServerTestCase 为其编写测试:

def test_login(self):
uname = "Herbert"
pw = "klaus1234"
User.objects.create(username=uname,password=pw)
login_page = "/accounts/login"
self.selenium.get('%s%s' % (self.live_server_url, login_page))
self.selenium.maximize_window()
self.selenium.find_element_by_id("id_login").send_keys(uname)
self.selenium.find_element_by_id("id_password").send_keys(pw)
self.selenium.find_elements_by_tag_name("button")[0].click()

当我运行它时,看起来正确的数据被发布到输入字段中,这与我手动执行操作时的情况完全相同。但我得到的是这样的:

“您指定的用户名和/或密码不正确。”

并且页面不会重定向到 LOGIN_REDIRECT_URL 中指定的页面

为了验证我发布的数据是否正确,我添加了这些不会引发错误的行:

self.assertEqual(1,len(Profile.objects.all()))
self.assertEqual(uname,Profile.objects.all()[0].user.username)
self.assertEqual(pw,Profile.objects.all()[0].user.password)
self.assertEqual(uname,User.objects.all()[0].username)
self.assertEqual(pw,User.objects.all()[0].password)

我在这里缺少什么?

最佳答案

这是相当老的帖子,但我认为这里的问题在于如何完成用户创建。

目前您正在使用以下方式创建用户。

User.objects.create(用户名=uname,密码=pw)

对于任何其他对象,这都是一个不错的选择,但用户应该按如下方式创建:

User.objects.create_user(用户名=uname,密码=pw)

这就是您看到密码未加密(纯文本)的原因。

关于python - 登录 selenium 测试 django 所有身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44223681/

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