Ich arbeite an Einheit Testfälle für eine Befehlszeilenanwendung in Python mit click
Bibliothek zu schreiben.Python - Klicken Sie auf die Befehlszeile Einheit Testfall für die Eingabeaufforderung von der Befehlszeilenfunktion
Ich versuchte unter Beispiel und das funktioniert gut:
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'
Aber jetzt will ich Eingabeaufforderung von meiner Funktion.
wie folgt aus:
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'