Esempio n. 1
0
def test_prompt_disallows_empty_response(mocker):
    console = RichConsole(file=io.StringIO())
    Prompt.prompt_(
        "What is your name?",
        console=console,
        stream=io.StringIO("\nfoo"),
    )
    expected = ("What is your name?: Response required. Please try again.\n"
                "What is your name?: ")
    assert console.file.getvalue() == expected
Esempio n. 2
0
def test_prompt_with_conditional_skip(mocker, default, brack):
    console = RichConsole(file=io.StringIO())
    mocked_validator = mocker.MagicMock(return_value="something")
    assert (Prompt.prompt_(
        "What is your name?",
        console=console,
        allow_omission=True,
        stream=io.StringIO("n\n"),
        default=default,
        validator=mocked_validator,
    ) is None)
    assert console.file.getvalue() == f"What is your name? {brack}: "
    mocked_validator.assert_not_called()
Esempio n. 3
0
def _prompts(
    keys: Iterable[str],
    defaults: Dict[str, str] = None,
    validator: Callable[[str, str], Union[str, Tuple[str, str]]] = None,
    allow_omission: bool = True,
    stream: Optional[TextIO] = None,
) -> Dict[str, OptStr]:
    from dvc.ui.prompt import Prompt

    defaults = defaults or {}
    return {
        key: Prompt.prompt_(
            PROMPTS[key],
            console=ui.error_console,
            default=defaults.get(key),
            validator=partial(validator, key) if validator else None,
            allow_omission=allow_omission,
            stream=stream,
        )
        for key in keys
    }