예제 #1
0
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}] "
예제 #2
0
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 + " ")
예제 #3
0
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}] "
예제 #4
0
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 + " "
예제 #5
0
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
예제 #6
0
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} "