Установка заголовков Auth в тестах Django
Я пытаюсь написать тест, который проходит через рабочий процесс регистрации/входа в систему, а затем пытается изменить статус пользователя, что требует, чтобы он вошел в систему. Я проверил, что первые 2 POST-запроса работают (пользователь действительно создается, а затем получает действительный токен авторизации после входа в систему), однако я не могу передать этот токен в заголовках третьего и последнего POST-запроса. Я также проверил, что переменная auth_headers
действительно установлена с правильным токеном, но я продолжаю получать в ответ код статуса 401.
Заранее спасибо!
tests.py
from email.headerregistry import ContentTypeHeader
from urllib import request
from wsgiref import headers
from django.http import HttpRequest
from django.test import TestCase, Client
from rest_framework import status
from rest_framework.test import APITestCase
from django.urls import reverse
from rest_framework.authtoken.models import Token
from django.contrib.auth.models import User
from profiles_api.serializers import UserProfileSerializer
from django.contrib.auth import get_user_model
from profiles_api.views import UserLoginApiView
client = Client()
User = get_user_model()
class MyTestCase(APITestCase,UserLoginApiView):
def test_add_status_to_profile(self):
response = self.client.post("/api/profile/", data={
'email':"John@gmail.com",
'name':'Pavle',
'password':'password'
})
response = self.client.post("/api/login/", data={
'username':"John@gmail.com",
'password':'password'
})
auth_headers = {
'Authorization': 'Bearer ' + response.json()['token']
}
response = self.client.post("/api/feed/", content_type='application/json', data={
'status_text':'Hello world!'
}, **auth_headers)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)