Как добавить заголовок к запросу Django RequestFactory?
Чтобы вручную отправить GET-запрос с заголовком, я делаю это с помощью curl
:
curl http://example.com/endpoint -H "Key: Value"
Я хочу написать модульный тест, который делает запрос (используя django.test.RequestFactory
), содержащий заголовок. Как я могу добавить заголовок в запрос?
Для ясности, ниже приведен пример того, что я хотел бы иметь возможность сделать, хотя то, что я написал ниже, не является корректным кодом, потому что RequestFactory.get()
не имеет headers
параметра:
from django.test import TestCase, RequestFactory
class TestClassForMyDjangoApp(TestCase):
def test_for_my_app(self):
factory = RequestFactory()
my_header = 'Key: Value'
factory.get('/endpoint/', headers=my_header)
Вам нужно передать HTTP_*
kwargs в get(...)
(или любой другой допустимый http метод), чтобы передать пользовательский HTTP заголовок в запросе.
class TestClassForMyDjangoApp(TestCase):
def test_for_my_app(self):
factory = RequestFactory()
my_header = {"HTTP_CUSTOM_KEY": "VALUE"}
request = factory.get("/some/url/", **my_header)
print(request.headers) # {'Custom-Key': 'VALUE'}