2013-12-24 4 views
1

Я хочу, чтобы иметь возможность войти в созданный вручную Userena пользователя для тестирования:Регистрация вручную созданного пользователя пользователя пользователя не удается, почему?

От my_app/тест/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="[email protected]", 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 

Почему сбой в регистрации?

+1

Я никогда не пользовался Userrena самостоятельно, но с некоторыми системами это может быть связано с тем, что пользователь не нажимает ссылку «Подтвердить вашу электронную почту» или какие-либо другие дополнительные ограничения, вызванные созданием учетной записи пользователя. –

+0

Извините за ответ так поздно. Это был ключ, который мне нужен. – Bentley4

+0

Прохладный, без проблем :) –

ответ

1

В качестве эталона:

Как создать пользователь userena вручную

>>> my_user = UserenaSignup.objects.create_user(username="my_name", email="[email protected]", 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 

Я нашел этот бит кода here, в тестах Userena.

Как войти в систему пользователя userena вручную

Вход не выполнен, потому что только пользователь, который имеет True для is_active может войти. Так после активации пользователя (см выше), вы войти следующим образом в test:

self.client.login(username=active_my_user.username, password="my_password", email= active_my_user.email) 
#True 
1

Я думаю, что my_user.password зашифрован. Попробуйте это:

self.client.login(username=my_user.username, password='my_password') 
+0

Это также возвращает 'False' – Bentley4

+0

Я удалил' email = my_user.email' из моего исходного ответа –

+0

Не работает. – Bentley4