Код: Выделить всё
def myfunc():
try:
# do stuff
return 0
except:
return 1
Наш тестовый код также довольно сложен, но на данный момент мне удалось протестировать эту функцию перед запуском инструмента. Здесь я использую приспособление pytest-mock mocker, которое является оболочкой для unittest.mock.
Я пробовал использовать макет с Side_effect=[1, 1, 0], который работает нормально, но мне нужно, чтобы он действительно «делал что-то» с третьей (успешной) попытки.
Код: Выделить всё
# TODO actually run the function on the 3rd attempt
mock_bdlc = mocker.MagicMock(
spec=WhiteboxTools.breach_depressions_least_cost, side_effect=[1, 1, 0]
)
mocker.patch("whitebox.WhiteboxTools.breach_depressions_least_cost", mock_bdlc)
Все, что мне до сих пор удавалось сделать, это либо издеваться над функцией и возвращать разные значения. коды выхода или просто запустите исходную функцию. Я не могу понять, как сделать и то, и другое.
Подробнее здесь: https://stackoverflow.com/questions/785 ... urn-values