При манипулировании объектами существуют некоторые инструменты, позволяющие изменить результат функции.
Допустим, есть некоторый класс:
class Worker:
def do_work(self):
return perform_operation()
И я хочу проверитьслучаи, когда do_work()
вызывает несколько исключений в разных ситуациях:
@patch(
'my.package.Worker.do_work',
Mock(side_effect=[exc.VeryBadError, exc.NotThatBadError]
))
def test_worker_raise_errors():
worker_user.call_worker()
Но нет способа передать несколько ошибок в side_effects
, как описано выше, он будет запускаться только один раз и Fail только для exc.VeryBadError
.
Когда я хочу найти способ запуска test_worker_raise_errors()
дважды для каждого исключения, но без создания каждой тестовой функции для исключения.
Есть ли способ запустить один тест несколькимираз для каждого исключения в качестве побочного эффекта и увидеть 2 ошибки в этом случае?