Я пишу тесты 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. Что не так?