click
ライブラリを使用してPythonでコマンドラインアプリケーションの単体テストケースを作成しています。
以下の例を試しましたが、これは正常に機能しています。
def test_hello_world():
@click.command()
@click.argument('name')
def hello(name):
click.echo('Hello %s!' % name)
runner = CliRunner()
result = runner.invoke(hello, ['Yash'])
assert result.exit_code == 0
assert result.output == 'Hello Yash!\n'
しかし今、関数からプロンプトを入力したいと思います。
このような:
def test_name_prompt(self):
@click.command()
@click.option('-name', default=False)
def username():
fname = click.prompt("What's your first name?")
lname = click.prompt("what's your last name?")
click.echo("%s %s" % (fname, lname))
runner = CliRunner()
result = runner.invoke(username, ['-name'])
assert result.exit_code == 0
assert result.output == 'Yash Lodha'