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...