Django のユニットテストで Request を作るには、response の wsgi_request を取得するのが楽

Django
2022-03-21 17:57 (2年前) ytyng
View in English

Django のユニットテストを作っていいて、 Request (WSGIRequest) が欲しくなる場合がある。

django.test.RequestFactory というものがあるので、これを使うとリクエストを作れるが、作るのがけっこう大変な上、ミドルウェアを通過していないリクエストのためビュー相当のテストをする時に使うのが難しい。

それより、テストクライアントを使って実際に適当なビューにリクエストを行うと、返ってきたレスポンスの中に wsgi_request というリクエストプロパティがついてくるので、これを使ったほうが楽。ミドルウェアも通過したものになっている。

client = self.client_class()
response = client.post(...)
request = response.wsgi_request

現在未評価
タイトルとURLをコピー

コメント

アーカイブ

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011