【问题标题】:Request headers in APITestCaseAPITestCase 中的请求标头
【发布时间】:2020-01-30 02:29:55
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案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'})
    

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 2023-03-17
      • 2017-10-07
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      相关资源
      最近更新 更多