@NyxDeveloper

Почему не работает JWT авторизация в тестах APITestCase?

Я пишу тесты restfull приложения, использующего djangorestframework-jwt. Через постман и приложение все работает, но когда пытаюсь обложить код тестами, тесты говорят, что токен не валидный.
Вот код:
class AdminPanelAuthTest(APITestCase):

    def setUp(self) -> None:
        user = User(
            email="test@email.com",
            is_staff=True,
            is_active=True,
            roles=[POINT_MANAGER]
        )
        user.set_password("password")
        user.save()
        self.login = user.email
        self.password = "password"
        self.client = APIClient()
        self.app_header = APPLICATIONS_HEADERS[POINT_MANAGER]    # заголовок приложения, так как API разрабатывалось для двух мобильных приложений

    def test_admin_auth(self):
        self.client.credentials(HTTP_APPLICATION=self.app_header)
        response = self.client.post(path="/auth/email/", data={
            "email": self.login,
            "password": self.password
        })
        json = response.json()
        self.assertIn("token", json)    # здесь проходит
        self.assertIn("user", json)    # и здесь проходит, а значит пользователь авторизовался
        token = json["token"]
        self.client.credentials(
            HTTP_APPLICATION=APPLICATIONS_HEADERS[POINT_MANAGER],
            HTTP_AUTHORIZATION="Bearer " + token
        )
        response = self.client.get(path="/users/users/")
        self.assertEqual(response.status_code, 200)    # а вот здесь вылетает ошибка, статус 401

Токен есть, токен валидный, но в ответе 401. Что не так?
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы