aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_tui.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/tests/test_tui.py')
-rw-r--r--app/tests/test_tui.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/tests/test_tui.py b/app/tests/test_tui.py
index b15419b..b839a71 100644
--- a/app/tests/test_tui.py
+++ b/app/tests/test_tui.py
@@ -981,6 +981,26 @@ class CheckboxTreeTests(TuiTestCase):
checked={(0, "pkg-b"), (1, "pkg-c")})
self.assertEqual(picked, [(0, "pkg-b"), (1, "pkg-c")])
+ def test_start_on_buttons_confirms_immediately(self):
+ # start_on_buttons=True (the seeded modify flow): Enter alone
+ # accepts the pre-checked tree with no Tab first.
+ screen = FakeScreen(keys=[10])
+ picked = tui.checkbox_tree(
+ screen, "Pick models", self.FAMILIES,
+ checked={(0, "pkg-b"), (1, "pkg-c")}, start_on_buttons=True)
+ self.assertEqual(picked, [(0, "pkg-b"), (1, "pkg-c")])
+
+ def test_start_on_buttons_without_selection_flashes(self):
+ # Focus starting on Confirm changes nothing else: Enter with an
+ # empty tree flashes and stays (the flash dismiss consumes one
+ # scripted key); the user then moves back to the rows, checks
+ # one, and confirms for real.
+ keys = [10, 9, 9, 10, 9, 10]
+ screen = FakeScreen(keys=keys)
+ picked = tui.checkbox_tree(screen, "Pick models", self.FAMILIES,
+ start_on_buttons=True)
+ self.assertEqual(picked, [(0, "pkg-a")])
+
def test_prechecked_options_draw_as_checked(self):
screen = FakeScreen(keys=[9, 10])
tui.checkbox_tree(screen, "Pick models", self.FAMILIES,