如何将 header 添加到 Django RequestFactory 请求?
How do I add a header to a Django RequestFactory request?
要使用 header 手动发送 GET 请求,我使用 curl
:
curl http://example.com/endpoint -H "Key: Value"
我想编写一个单元测试来发出包含 header 的请求(使用 django.test.RequestFactory
)。如何在请求中添加 header?
为清楚起见,下面是我喜欢能够做的事情的示例,尽管我在下面写的是不是[=25] =] 有效代码,因为 RequestFactory.get()
没有 headers
参数:
from django.test import TestCase, RequestFactory
class TestClassForMyDjangoApp(TestCase):
def test_for_my_app(self):
factory = RequestFactory()
my_header = dict(key=value, another_key=another_value)
factory.get('/endpoint/', headers=my_header)
您需要将 HTTP_*
kwargs 传递给 get(...)
(或任何有效的 http 方法)以在请求中传递自定义 HTTP header。
class TestClassForMyDjangoApp(TestCase):
def test_for_my_app(self):
factory = RequestFactory()
<b>my_header = {"HTTP_CUSTOM_KEY": "VALUE"}</b>
request = factory.get("/some/url/", <b>**my_header</b>)
print(request.headers) # {'Custom-Key': 'VALUE'}
要使用 header 手动发送 GET 请求,我使用 curl
:
curl http://example.com/endpoint -H "Key: Value"
我想编写一个单元测试来发出包含 header 的请求(使用 django.test.RequestFactory
)。如何在请求中添加 header?
为清楚起见,下面是我喜欢能够做的事情的示例,尽管我在下面写的是不是[=25] =] 有效代码,因为 RequestFactory.get()
没有 headers
参数:
from django.test import TestCase, RequestFactory
class TestClassForMyDjangoApp(TestCase):
def test_for_my_app(self):
factory = RequestFactory()
my_header = dict(key=value, another_key=another_value)
factory.get('/endpoint/', headers=my_header)
您需要将 HTTP_*
kwargs 传递给 get(...)
(或任何有效的 http 方法)以在请求中传递自定义 HTTP header。
class TestClassForMyDjangoApp(TestCase):
def test_for_my_app(self):
factory = RequestFactory()
<b>my_header = {"HTTP_CUSTOM_KEY": "VALUE"}</b>
request = factory.get("/some/url/", <b>**my_header</b>)
print(request.headers) # {'Custom-Key': 'VALUE'}