def test_prompt_default_no_input(stdin, capsys): question = "What is your name?" default = "The Nameless One" stdin.append("\n") response = prompt(question, default=default) out, _ = capsys.readouterr() assert response == default assert out == f"{question} [{default}] "
def test_prompt_no_response_default_None(stdin, capsys): """Prompts with no response should ask again""" question = "What is your name?" stdin.append("\n") response = prompt(question, default=None) stdout, _ = capsys.readouterr() assert response is None assert stdout == (question + " ")
def test_prompt_default_overridden(stdin, capsys): question = "What is your name?" default = "The Nameless One" name = "Buttercup" stdin.append(name + "\n") response = prompt(question, default=default) out, _ = capsys.readouterr() assert response == name assert out == f"{question} [{default}] "
def test_prompt(stdin, capsys): """Test basic prompt functionality""" question = "What is your name?" name = "Inigo Montoya" stdin.append(name + "\n") response = prompt(question) stdout, _ = capsys.readouterr() assert response == name assert stdout == question + " "
def test_prompt_no_response(stdin, capsys): """Prompts with no response should ask again""" question = "What is your name?" name = "Inigo Montoya" stdin.append("\n" + name + "\n") response = prompt(question, default="") stdout, _ = capsys.readouterr() assert response == name assert stdout == (question + " ") * 2
def test_prompt_error_message(stdin, capsys): question = "Is this awesome?" error = "You know that is not correct" def validator(value): if value != "yes": raise ValueError(error) return True stdin.append("no\n") stdin.append("yes\n") response = prompt(question, validator=validator) out, _ = capsys.readouterr() assert response is True assert out == f"{question} {error}\n{question} "