Необходим заголовок авторизации в тестовом 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