Использование pytest для проверки приглашения вводаPython

Программы на Python
Ответить
Anonymous
 Использование pytest для проверки приглашения ввода

Сообщение Anonymous »


Представьте, что у меня есть функция Python, которая выглядит примерно так:

def myFunction(аргумент: str) -> Нет: делать вещи() result = input(f'{complication_logic_involving_argument}: ') сделатьДругоеStuff() Я хочу проверить результаты myFunction(), но я также хочу проверить, что сложное приглашение отображается правильно для каждого возможного аргумент.

Проблема в том, когда я пытаюсь

@mark.parameterize(('аргумент', 'подсказка'), ( («firstValue», «Ожидаемое приглашение»), )) def test_myFunction (аргумент: str, приглашение: str,monkeypatch, capsys) -> Нет: Monkeypatch.setattr('builtins.input', лямбда _: 'что угодно') мояФункция(аргумент) # ЗДЕСЬ МОЙ ТЕСТОВЫЙ КОД НЕ ПРОЙДЕТ! снимок = capsys.readouterr() утвердить приглашение в snapshot.out Похоже, что фактическое приглашение не относится ни к snapshot.out, ни к snapshot.err. Я также пробовал использовать capfd, но безуспешно.

Есть ли возможность перехватить приглашение input()`?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»