Я написал следующий код:
def load_tests(self):
while True:
try:
return [tests[int(x)] for x in input("\nEnter integer values of tests to execute (seperate by 'space'): ").split()]
except ValueError:
logger.error("Non-integer value found.")
except IndexError:
logger.error("Entered non-existing list value")
И я попытался написать модульный тест для этого кода, используя следующий код:
def test_load_static_tests_string(self):
with mock.patch('builtins.input', return_value="string"):
with mock.patch("sys.stdout", new=StringIO()) as fakeOutput:
load_tests()
self.assertEqual(fakeOutput.getvalue().strip(), 'Non-integer value found.')
Но консоль продолжает печатать "Не найдено целое число. Как я могу исправить этот код и вырваться из l oop после тестирования один раз?