Django のユニットテストを作っていいて、 Request (WSGIRequest) が欲しくなる場合がある。
django.test.RequestFactory
というものがあるので、これを使うとリクエストを作れるが、作るのがけっこう大変な上、ミドルウェアを通過していないリクエストのためビュー相当のテストをする時に使うのが難しい。
それより、テストクライアントを使って実際に適当なビューにリクエストを行うと、返ってきたレスポンスの中に wsgi_request
というリクエストプロパティがついてくるので、これを使ったほうが楽。ミドルウェアも通過したものになっている。
client = self.client_class()
response = client.post(...)
request = response.wsgi_request
コメント