8

ユーザー エージェント文字列を RequestFactory リクエスト オブジェクトに追加する方法はありますか? 次のテストがあります。

def test_homepage(self):
    request = self.factory.get(reverse('home'))
    response = views.home_page(request)
    self.assertEqual(response.status_code, 200)

問題は、home_page ビューが request.META["HTTP_USER_AGENT"] を必要とする関数を呼び出すことです。その結果、上記のテストでは HTTP_USER_AGENT が何であるかがわからないため、KeyError が発生しています。RF の要求オブジェクトに追加する方法はありますか? Django の Client オブジェクトを使用すれば追加できることはわかっていますが、テストでのミドルウェアの関与を​​すべて排除したいので、このルートには進みません。

ありがとうございました。

4

1 に答える 1

15

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

于 2013-07-09T03:42:54.133 に答える