Необходим заголовок авторизации в тестовом DRF

Я пытаюсь проверить некоторые виды по url, но кажется, что я заблокирован с учетными данными, я вижу другие сообщения с той же проблемой и пытаюсь следовать им, но я все еще как здравый смысл

test_web_share_file_folder_view_set.py

class WebShareFileFolderViewSetTestCase(TestCase):
    def setUp(self):
        self.factory = APIRequestFactory()
        self.user = User.objects.create_user(username='my_user', password='my_password')
        headers = web_backend_api_access_headers()
        self.token = headers['Authorization']
        self.client = APIClient()

    def test_list_with_search(self):
        WebShareFileFactoryBoy(name="file_with_search", path="path_with_search")

        url = reverse('web-share-file-folders-list')
        request = self.factory.get(url, {'search': 'file_with_search'})
        request.user = self.user

        self.client.credentials(HTTP_AUTHORIZATION='Bearer' + self.token)
        response = self.client.get(url,  headers={'Authorization': 'Bearer ' + self.token})
        print(response.data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertTrue('file_with_search' in response.data['results'][0]['name'])

здесь ошибка, когда я запускаю тест

FAIL: test_list_with_search (tests.test_web_share_file_folder_view_set.WebShareFileFolderViewSetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "-\tests\test_web_share_file_folder_view_set.py", line 32, in test_list_with_search
    self.assertEqual(response.status_code, status.HTTP_200_OK)
AssertionError: 401 != 200

и вот печать response.data

{'detail': ErrorDetail(string='Need Authorization Header', code='authentication_failed')}

Если у кого-нибудь есть идеи :? спасибо

Я пытаюсь получить доступ к представлению, чтобы сделать тест

Метод credentials можно использовать для установки заголовков, которые затем будут включены во все последующие запросы тестового клиента.

from rest_framework.authtoken.models import Token
from rest_framework.test import APIClient

# Include an appropriate Authorization: header on all requests.
token = Token.objects.get(user__username='lauren')
client = APIClient()
client.credentials(HTTP_AUTHORIZATION='Token ' + token.key)

Ссылка: https://www.django-rest-framework.org/api-guide/testing/#headers-authentication

Вернуться на верх