APITestCase中的请求标头

时间:2019-09-30 19:09:23

标签: django django-rest-framework django-testing

我有一个测试(APITestCase),我需要指定自定义标头:

class ListAppsAPITest(APITestCase):
    def test_list_apps_versions(self):
        response = self.client.get(reverse('api:applications:list'), None, **{'Device-Id': 'deadbeef'})

我尝试了不同的参数组合,但是没有用。

如何在测试中指定自定义标头?

1 个答案:

答案 0 :(得分:1)

仅仅是因为Django有他们自己的方式来定义标头,所以您可以看看here来了解为什么以及如何实现它。

  

除上面给出的CONTENT_LENGTH和CONTENT_TYPE外,通过将所有字符都转换为大写字母,用下划线替换所有连字符,并在名称中添加HTTP_前缀,将请求中的所有HTTP标头都转换为META键。因此,例如,一个名为X-Bender的标头将被映射到META键HTTP_X_BENDER。

您的情况如下:

class ListAppsAPITest(APITestCase):
    def test_list_apps_versions(self):
        response = self.client.get(reverse('api:applications:list'), None, **{'HTTP_DEVICE_ID': 'deadbeef'})

希望有帮助!