Добавление пользовательского заголовка 'FOO' в Django Rest Framework APIClient
Для приложения, использующего SSO для входа в систему, я реализовал AuthBackend с Django Rest Framework. Этот пользовательский класс AuthBackend проверяет наличие X-USERID в заголовках и на основе этого возвращает экземпляр пользователя.
Я добавил классы разрешений в представления для проверки аутентифицированных пользователей. Чтобы добавить модульные тесты в код, APIClient должен позволить нам добавлять пользовательские заголовки типа {'FOO': 'BAR'}
Классом по умолчанию является APIClient Я пробовал следующее, но ни одно из них не работает:
class AccountsTests(APITestCase):
    def test_user_is_authenticated(self):
        ...
        headers = {'USERID': 'john.doe', 'FOO': 'BAR' }
        self.client.get(url, headers)       # Doesn't work
        self.client.get(url, **headers)     # Doesn't work
        self.client.headers.update(headers) # Doesn't work
        ...
                
 Мне удалось решить проблему, используя RequestsClient следующим образом:
from rest_framework.test import RequestsClient
class AccountTests(APITestCase):
    def setUp(self):
        self.client = RequestsClient()
    def test_user_is_authenticated(self):
        ...
        headers = {'USERID': 'john.doe', 'FOO': 'BAR' }
        self.client.headers.update(headers)
        response = self.client.get(url)
        ...