コンテンツにスキップ

pytest mock で実行ごとに値を変更する

pytest mock で実行ごとに値をを変えるには、side_effectを使う。下記の例では、some_module.some_funcが呼び出されるたびに、1, 2, 3を返すように設定している。

1
2
3
4
5
def test_some(mocker):
  mocker.patch('some_module.some_func', side_effect=[1, 2, 3])
  assert some_module.some_func() == 1
  assert some_module.some_func() == 2
  assert some_module.some_func() == 3