Как написать unittest.mock для input функции?

Основная функция для теста:

async def start_script():
script = int(input("Введите:\n1 для запуска парсера видео\n2 для запуска загрузчика видео: \n"))
if script == 1:
    number = int(input("Введите количество видео для парсинга: "))
    # await main.info_videos(number=number)
elif script == 2:
    number_pc = int(input("Введите номер ПК: "))
    count_video = int(input("Количество повторных публикаций: "))
    print("Введите диапазон времени для публикации (в минутах)")
    number1 = int(input("От (в минутах): "))
    number2 = int(input("До (в минутах): "))
    await get_video_process(number1, number2, number_pc, count_video)
else:
    print("Ошибка ввода!")
    await start_script()


asyncio.run(start_script())

Unittest для этого кода:

import unittest
from unittest.mock import patch

from web import start_script


class TestStartScript(unittest.TestCase):
    @patch("builtins.input", side_effect=["1", "5"])
    def test_start_script(self, mock_input):
        self.assertIsNone(start_script())


if __name__ == "__main__":
    unittest.main()

Запускаю этот тест, и открывается консоль для ввода данных, хотя такого не должно быть. введите сюда описание изображения Как это решить?


Ответы (0 шт):