単体テストから呼び出す関数があります。いくつかのデバッグトレースを設定することから、関数が魅力的に機能し、すべての値が返されるように正しく準備されていることがわかりました。
これは私のテストコードがどのように見えるかです (私の ipdb.set_trace() がどこにあるかを見てください):
@override_settings(REGISTRATION_OPEN=True)
def test_confirm_account(self):
""" view that let's a user confirm account creation and username
when loggin in with social_auth """
request = self.factory.get('')
request.user = AnonymousUser()
request.session={}
request.session.update({self.pipename:{'backend':'facebook',
'kwargs':{'username':'Chuck Norris','response':{'id':1}}}})
# this is the function of which i need the context:
response = confirm_account(request)
self.assertEqual(response.context['keytotest'],'valuetotest')
Django docs のこの部分から私が知っていることから、テストクライアントを使用すると、response.context にアクセスできるようになります。しかし、私がやったように response.context にアクセスしようとすると、次のようになります:
AttributeError: 'HttpResponse' オブジェクトに属性 'context' がありません
クライアントを使用せずに、クライアントの特別な HttpResponse オブジェクトを取得する方法はありますか?