関数に渡すさまざまな URL に対してさまざまな応答が得られるように、urllib2.urlopen ライブラリをモックしようとしています。
テストファイルで今やっている方法は次のようなものです
@patch(othermodule.urllib2.urlopen)
def mytest(self, mock_of_urllib2_urllopen):
a = Mock()
a.read.side_effect = ["response1", "response2"]
mock_of_urllib2_urlopen.return_value = a
othermodule.function_to_be_tested() #this is the function which uses urllib2.urlopen.read
私は、othermodule.function_to_be_tested が最初の呼び出しで値 "response1" を取得し、2 番目の呼び出しで "response2" を取得することを期待しています。
しかし、 othermodule.function_to_be_tested() は受け取ります
<MagicMock name='urlopen().read()' id='216621051472'>
実際の応答ではありません。どこが間違っているか、またはこれを行う簡単な方法を提案してください。