1

テスト用に手動で作成した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

ログインに失敗するのはなぜですか?

4

2 に答える 2

1

my_user.password暗号化されていると思います。これを試して:

self.client.login(username=my_user.username, password='my_password')
于 2013-12-24T16:34:38.440 に答える
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のテストで、このコードを見つけました。

userena ユーザーを手動でログインする方法

Trueを持っているユーザーのみがログインできるため、ログインに失敗しis_activeました。したがって、ユーザーをアクティブ化した後 (上記を参照)、テストで次のようにログインします。

self.client.login(username=active_my_user.username, password="my_password", email= active_my_user.email)
#True
于 2013-12-26T11:33:32.533 に答える