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')}")
Пока безрезультатно, кто-нибудь еще сталкивался с этой проблемой и нашел выход?