У меня есть основная функция. Само по себе, он принимает 3 аргумента - возраст, пол, source_of_income.
Эти аргументы передаются через функцию input ().
Я хочу создать для нее тест с помощью py test изаменить входящие данные:
from unittest.mock import patch
def expected_values():
for item in [2,"F","собственный бизнес"]:
yield item
exp_gen = expected_values()
@patch('builtins.input', lambda *args: next(exp_gen))
def test_main():
assert main.main(age=-2,gender="F",source_of_income="собственный бизнес")
но тест - не работает
raise IOError("reading from stdin while output is captured")
OSError: reading from stdin while output is captured
Что я делаю не так?