我有一个这样的班级工厂:
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] 删除。
我来说两句