我希望能够登录手动创建的Userena用户进行测试:
来自 my_app / test / test_views.py
import django.test
from userena.models import UserenaSignup
class MyViewTestCase(django.test.TestCase):
def test_login(self):
my_user = UserenaSignup.objects.create_user(username="my_name", email="my_name@gmail.com", password="my_password")
log_in = self.client.login(username=my_user.username, password=my_user.password, email=my_user.email)
import pdb; pdb.set_trace()
在 pdb :
中>>> log_in
False
为什么登录失败?
答案 0 :(得分:1)
我认为my_user.password
已被加密。
试试这个:
self.client.login(username=my_user.username, password='my_password')
答案 1 :(得分:1)
作为参考:
如何手动创建userena用户
>>> my_user = UserenaSignup.objects.create_user(username="my_name", email="my_name@gmail.com", password="my_password")
# A userena user that hasn't activated his account with an account confirmation link
# has False for is_active
>>> my_user.is_active
False
如何激活非活动的userena用户
>>> active_my_user = UserenaSignup.objects.activate_user(my_user.userena_signup.activation_key)
>>> active_my_user.is_active
True
我在Userena的测试中找到了这段代码here。
如何手动登录userena用户
登录失败,因为只有True
is_active
的用户才能登录。
因此,在激活您的用户(见上文)后,您将在测试中按以下方式登录:
self.client.login(username=active_my_user.username, password="my_password", email= active_my_user.email)
#True