У меня есть новый проект Django (версия 2.2), пользовательская модель пользователя и django-allauth
для управления регистрацией пользователей (не через социальные сети, только с подтверждением по электронной почте), и я пытаюсь протестировать некоторые защищенные представления.
В методе теста setUp
я создаю нового пользователя и создаю нового EmailAddress
(из allauth.account.models
) с verified
и primary
, установленными на True
.
Далее я пытаюсь войти с помощью: self.client.login(username=username, password=password)
, и я получаю True
, поэтому все работает до сих пор, и пользователь вошел в систему.
Если я пытаюсь просмотреть что-либо, требующее входа, я получаю 301 перенаправить на страницу входа в систему.
Вот мой код:
создание пользователя в setUp
username = 'test@test.com'
password = 'testtesttest'
new_user = User.objects.create_user(
username=username,
email=username,
password=password,
)
new_user.save()
new_user.is_active = True
new_user.save()
new_email_address = EmailAddress(
user_id=new_user.id,
email=username,
verified=True,
primary=True,
)
new_email_address.save()
вход и проверка входа в систему
logged_in = self.client.login(email=username, password=password)
self.assertTrue(logged_in) # and this works as expected
Теперь, если я попытаюсь запросить представление, требующее входа в систему:
response = self.client.get("/protected")
Я получу <HttpResponsePermanentRedirect status_code=301, "text/html; charset=utf-8", url="/protected/">
Что я пропускаю или делаю неправильно?