有没有办法将用户代理字符串添加到 RequestFactory 请求对象?我有以下测试:
def test_homepage(self):
request = self.factory.get(reverse('home'))
response = views.home_page(request)
self.assertEqual(response.status_code, 200)
问题是 home_page View 调用了一个需要 request.META["HTTP_USER_AGENT"] 的函数。结果,上面的测试引发了 KeyError,因为它不知道 HTTP_USER_AGENT 是什么。有没有办法将它添加到 RF 的请求对象中?我知道如果我使用 Django 的 Client 对象我可以添加它,但我不想走这条路,因为我想消除所有中间件参与我的测试。
谢谢。
最佳答案
将 HTTP_USER_AGENT 作为关键字参数传递。
request = self.factory.get(reverse('home'), HTTP_USER_AGENT='Mozilla/5.0')
https://docs.djangoproject.com/en/1.5/topics/testing/overview/#django.test.client.Client.get通过https://docs.djangoproject.com/en/1.5/topics/testing/advanced/#django.test.client.RequestFactory
关于python - 将 HTTP_USER_AGENT 添加到 Django RequestFactory 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539254/