unittest while l oop со входом python - PullRequest
0 голосов
/ 02 апреля 2020

Я написал следующий код:

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 после тестирования один раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...