Почему я не могу войти в систему с помощью клиента? - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь проверить свои действия. Но когда я go на странице администрирования использую client, я получаю ошибку <HttpResponseRedirect status_code=302, "text/html; charset=utf-8", url="/admin/login/?next=/admin/donation/donation/">

class ExportToExcelTestCase(TestCase):
    def setUp(self) -> None:
        self.user = UserFactory()

    def test_export_to_excel(self) -> None:
        data = {'action': 'export_to_excel'}
        change_url = '/admin/donation/donation/'
        self.user.is_staff = True
        self.user.is_superuser = True
        self.user.save()
        self.client.login(username=self.user.username, password=self.user.password)
        response = self.client.post(change_url, data)
        print(response)   #<HttpResponseRedirect status_code=302, "text/html; charset=utf-8", url="/admin/login/?next=/admin/donation/donation/">

1 Ответ

2 голосов
/ 08 февраля 2020

Вы не можете войти в систему с помощью self.user.password - это пароль пользователя хэшированный , а не пароль, который они будут использовать для входа в систему - следовательно, ваш логин не удался (вы можете проверить это с помощью проверка возвращаемого значения login() - это будет False).

Поскольку здесь вы на самом деле не тестируете аутентификацию, вам следует просто использовать force_login вместо:

def test_export_to_excel(self) -> None:
    data = {'action': 'export_to_excel'}
    change_url = '/admin/donation/donation/'
    self.user.is_staff = True
    self.user.is_superuser = True
    self.user.save()
    self.client.force_login(self.user)
    response = self.client.post(change_url, data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...