diff options
Diffstat (limited to 'app/tests/test_tui.py')
| -rw-r--r-- | app/tests/test_tui.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/tests/test_tui.py b/app/tests/test_tui.py index 1b7af86..c2cd267 100644 --- a/app/tests/test_tui.py +++ b/app/tests/test_tui.py @@ -440,6 +440,41 @@ class ConfirmTests(TuiTestCase): marker) +class ConfirmYnCancelTests(TuiTestCase): + def test_enter_takes_the_default_yes(self): + screen = FakeScreen(keys=[10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "yes") + + def test_tab_enter_selects_no_then_cancel(self): + screen = FakeScreen(keys=[9, 10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "no") + screen = FakeScreen(keys=[9, 9, 10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "cancel") + + def test_buttons_wrap_around(self): + # Moving back from Yes lands on Cancel. + screen = FakeScreen(keys=[FakeCurses.KEY_LEFT, 10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "cancel") + + def test_y_and_n_answer_directly(self): + screen = FakeScreen(keys=[ord("y")]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "yes") + screen = FakeScreen(keys=[ord("n")]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "no") + + def test_esc_and_q_count_as_cancel(self): + for key in (27, ord("q")): + screen = FakeScreen(keys=[key]) + self.assertEqual( + tui.confirm_yn_cancel(screen, "Save settings?"), "cancel") + + class LineEditTests(TuiTestCase): def test_typing_backspace_and_enter(self): keys = [ord("c"), ord("d"), FakeCurses.KEY_BACKSPACE, 10] |
