Как уловить sys.exit()
с помощью pytest в функции, которая возвращает генератор? В следующем коде f()
возвращает привет мир если x = True
. Но используя x = False
, я ожидаю, что код будет запущен SystemExit
.catch sys.exit с py.test
def test_generator():
with pytest.raises (SystemExit) as excinfo:
def f(x = True):
if x:
yield 'hello world'
sys.exit('Test')
f (x = False)
assert 'Test' == excinfo.value
py.test жалуется, что исключение не было поднято. Если я изменю yield
на return
, код работает без проблем. Есть идеи?
Вы пытались исправить 'sys' с' mock.patch'? –