При использовании mocker
из pytest-mock
, как я могу использовать has_calls
для проверки вызовов определенного метода без проверки всех вызовов, сделанных для возвращаемого значения этого метода?
Например:
import subprocess
from unittest import mock
def test_foo(mocker):
m = mocker.patch('test_main.subprocess')
r1 = subprocess.run(['foo'])
r1.check_returncode()
r2 = subprocess.run(['bar'])
r2.check_returncode()
m.run.assert_has_calls([
mock.call(['foo']),
mock.call(['bar']),
])
Сбой с:
E AssertionError: Calls not found.
E Expected: [call(['foo']), call(['bar'])]
E Actual: [call(['foo']),
E call().check_returncode(),
E call(['bar']),
E call().check_returncode()]
Почему звонки на возвращаемое значение также включены? Я просто хочу убедиться, что мне позвонили на subprocess.run(['foo'])
, а затем на subprocess.run(['bar'])
. Меня не волнуют звонки на все, что он возвращает, но я делаю забочусь о порядке звонков самой run
.