Тест блокировки с помощью CliRunner в клике ⇐ Python

Программы на Python
Anonymous
Тест блокировки с помощью CliRunner в клике

Сообщение Anonymous »

Моя цель — реализовать функциональные тесты с помощью pytest и click.testing.
Вот небольшой пример:

Код: Выделить всё

import click
import click.testing

@click.command()
@click.option("-s", "--size", type=int)
def main(size):
click.echo(f"Size: {size}")
foo = click.prompt("Foo", type=str)
bar = click.prompt("Bar", type=str)
return 0

runner = click.testing.CliRunner()
runner.invoke(main, ["-s", "5"], input="foo\n")
Когда я запускаю свою программу в обычном режиме (без бегуна), при нажатии EOF программа прерывается:

Код: Выделить всё

echo -e "foo\n" | python foo.py
Size: None
Foo: Bar: Bar: Aborted!
Однако при использовании бегуна программа блокируется по приглашению («Bar»). Кажется, бегун не учитывает EOF. Как это исправить?
Я даже пытался добавить \xff в конце ввода.

Подробнее здесь: https://stackoverflow.com/questions/790 ... r-in-click

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