Django Api-Key с модульным тестированием

Я пытаюсь внедрить модульные тесты в существующий проект, существующий проект использует Api-ключи для доступа и аутентификации на конечных точках Api.

если я сделаю следующее через postman или командную строку:

curl --location --request GET 'http://127.0.0.1:8000/api/user_db' \
--header 'Authorization: Api-Key REDACTED' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username" : "testuser@localhost"
}'

Все работает отлично, однако при попытке добавить Api-Key в заголовок в Unit-тестах я получаю следующее :

'detail': ErrorDetail(string='Authentication credentials were not provided.', code='not_authenticated')}
AssertionError: 403 != 200

from rest_framework.test import APITestCase
from rest_framework import status
from django.urls import reverse
import environ


env = environ.Env()

class GetUserTestCase(APITestCase):
    def test_get_user_account(self):
        getdata = {
                    "username" : "testuser@localhost"
                }

        response    =   self.client.get(reverse('users_db'), data=getdata, **{ "HTTP_AUTHORIZATION": f"Api-Key {env('API_KEY')}" })
        print(response.data)
        
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data["username"],response.data["enc_password"],response.data["oid"])

Также пробовали со следующими предметами:

headers = {
            'Authorization': f'Api-Key {env("API_KEY")}',
            'Content-Type': 'application/json'
        }
response    =   self.client.get(reverse('users_db'), data=getdata, headers=headers)

AND

self.client.credentials(HTTP_AUTHORIZATION=f"Api-Key {env('API_KEY')}")

Пока безрезультатно, кто-нибудь еще сталкивался с этой проблемой и нашел выход?

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