[Python] Click command line unit test case for input prompt from command line function

Discussão em 'Python' iniciado por Stack, Abril 25, 2025.

  1. Stack

    Stack Membro Participativo

    I am working on writing unit test cases for a command line application in python using click library.

    I tried below example and this is working fine:

    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'


    But now I want to input prompt from my function.

    like this:

    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'

    Continue reading...

Compartilhe esta Página