Django无法使用UserFactory登录测试用户

雅辛·鲁伊兹(Yacine Rouizi)

我有一个这样的班级工厂:

class UserFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = settings.AUTH_USER_MODEL

    username = factory.Sequence(lambda n: f'user_{n}')

在我的测试中:

class MyTestView(TestCase):
    def test_my_view(self):
        user = UserFactory(password='1234')
        print(User.objects.all())
        print(user.password)
        login = self.client.login(username='user_0', password='1234')
        print(login)

该测试的输出为:

# ...
<QuerySet [<User: user_0>]>
1234
False
# ...

为什么我的用户未登录?我可以看到密码没有被散列,为什么?问题出在这里吗?

威廉·范昂塞姆

您不能创建这样的用户。Django存储密码哈希值您可以使用.set_password(..)[Django-doc]设置密码

class MyTestView(TestCase):
    def test_my_view(self):
        user = UserFactory()
        user.set_password('1234')
        user.save()
        login = self.client.login(username='user_0', password='1234')
        print(login)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章