Add stderr/stdin stream control for console utilities.

Review Request #12246 — Created April 21, 2022 and submitted — Latest diff uploaded

Information

RBTools
release-3.x

Reviewers

This adds stderr and stdin control for get_input(), get_pass(),
confirm(), and confirm_select() utilities. When hooked up properly,
this enables unit tests to automate code paths that require user input.

If stdin is a TTY, these will prompt the user for input as normal.
Otherwise, they'll read a line from stdin. This allows for scripting
inputs.

While here, a few additional tweaks were made to these very old
utilities:

  • confirm() no longer uses a private method in distutils to check
    for Yes/No input strings. Instead, the checks are now under our
    control.

  • confirm() and confirm_select() now show bad user input in quotes.

Unit tests were also added for all these functions.

Unit tests pass.

Diff Revision 2 (Latest)

orig
1
2

Commits

First Last Summary ID Author
Add stderr/stdin stream control for console utilities.
This adds `stderr` and `stdin` control for `get_input()`, `get_pass()`, `confirm()`, and `confirm_select()` utilities. When hooked up properly, this enables unit tests to automate code paths that require user input. If `stdin` is a TTY, these will prompt the user for input as normal. Otherwise, they'll read a line from `stdin`. This allows for scripting inputs. While here, a few additional tweaks were made to these very old utilities: * `confirm()` no longer uses a private method in `distutils` to check for Yes/No input strings. Instead, the checks are now under our control. * `confirm()` and `confirm_select()` now show bad user input in quotes. Unit tests were also added for all these functions.
7466ee80285d0ccac2482267f449e6baf0714927 Christian Hammond
rbtools/utils/console.py
rbtools/utils/tests/test_console.py
Loading...