関数名・メソッドの呼び出しのアサーションで
1 2 3 4 5 6 7 |
with patch('codecs.open') as mock: instance = mock.return_value expected = [call("arg1", today + "arg2", "arg3")] instance.methodname.assert_has_calls(expectedLog, any_order=True) |
で、正規表現を使いたい場合
引数に処理時間が入っていて、単純に比較できない場合など。
ちょっと無理矢理だが以下のようにすると正規表現が使える
1 2 3 4 5 6 7 8 9 |
with patch('codecs.open') as mock: instance = mock.return_value # methodname メソッドの最初の呼びだしを取得 message = instance.methodname.call_args_list[0] # message は、呼び出し時の引数がタプルになって入っている。以下の例は第二引数を正規表現で比べている self.assertRegexpMatches(message[1], ".*arg2") |
methodname の二番目の呼び出しを取る場合は,call_args_listの二番目を参照すればよい
1 2 3 |
message = instance.methodname.call_args_list[1] |