1. ホーム
  2. パイソン

[解決済み】リクエストとレスポンスをモック化する方法は?

2022-04-14 18:46:26

質問

を使おうとしています。 Pythons モックパッケージ を使用して Pythons のモックを作成します。 requests モジュールを使用します。以下のシナリオで動作させるための基本的な呼び出しは何ですか?

views.pyで、毎回異なるレスポンスでrequests.get()を何度も呼び出す関数があります。

def myview(request):
  res1 = requests.get('aurl')
  res2 = request.get('burl')
  res3 = request.get('curl')

テストクラスで次のようなことをしたいのですが、正確なメソッド呼び出しがわかりません。

ステップ1:

# Mock the requests module
# when mockedRequests.get('aurl') is called then return 'a response'
# when mockedRequests.get('burl') is called then return 'b response'
# when mockedRequests.get('curl') is called then return 'c response'

ステップ2:

ビューを呼び出す

ステップ3.

レスポンスに 'a response', 'b response', 'c response' が含まれているか確認する。

ステップ1(requestsモジュールのモック化)を完了するには?

どのように解決するのですか?

以下は、私の場合、うまくいったことです。

import mock
@mock.patch('requests.get', mock.Mock(side_effect = lambda k:{'aurl': 'a response', 'burl' : 'b response'}.get(k, 'unhandled request %s'%k)))