Beispiel #1
0
 def test_focus_prev(self):
     mc = MultipleChoice(["foo", "foo bar", "äöü"], True)
     self.assertEqual(0, mc.current_focus, "initial focus")
     mc.focus_previous()
     self.assertEqual(2, mc.current_focus, "prev focus")
     mc.focus_previous()
     self.assertEqual(1, mc.current_focus, "prev focus")
     mc.focus_previous()
     self.assertEqual(0, mc.current_focus, "prev focus")
     mc.focus_previous()
     self.assertEqual(2, mc.current_focus, "prev focus")
Beispiel #2
0
def _multi_select(prompt: str, options: List[str]):
    if len(options) == 0:
        return []

    mc = MultipleChoice(options, True)
    selected_options = _process_multiple_choice(mc, prompt)
    return selected_options
Beispiel #3
0
def _multi_select(prompt: str, options: List[str], allow_custom_tags: bool):
    if len(options) == 0:
        return []
    mc = MultipleChoice(options, True)
    dialog = TagChoiceDialog(None, prompt, mc, allow_custom_tags)
    response = dialog.run()
    if response == Gtk.ResponseType.OK:
        return mc.selection
    else:
        return []
Beispiel #4
0
def _handle_multiple_choice_input(key, mc: MultipleChoice,
                                  scroll: ScrollModel):
    if key == curses.KEY_UP:
        mc.focus_previous()
        scroll.handle_up()
    elif key == curses.KEY_DOWN:
        mc.focus_next()
        scroll.handle_down()
    elif key in [ord(' '), curses.KEY_RIGHT, curses.KEY_LEFT]:
        mc.toggle_focused()
    elif key == ord('q'):
        mc.clear_selection()
    return key in [curses.KEY_ENTER, ord('\n'), ord('q')]
Beispiel #5
0
 def test_add_custom_option_focus(self):
     mc = MultipleChoice(["abc", "fgh"], True)
     mc.focus_next()
     mc.select("def")
     self.assertEqual(["abc", "def", "fgh"], mc.options, "wrong options")
     self.assertEqual(2, mc.current_focus, "wrong focus")
Beispiel #6
0
 def test_sorted_options(self):
     mc = MultipleChoice(["def", "abc", "ghi"], True)
     self.assertEqual(["abc", "def", "ghi"], mc.options, "options not sorted")
Beispiel #7
0
 def test_add_custom_option(self):
     mc = MultipleChoice(["foo", "foo bar", "aöü"], True)
     mc.select("foo")
     mc.select("custom")
     self.assertEqual(["aöü", "custom", "foo",  "foo bar"], mc.options, "wrong options")
     self.assertEqual({"custom", "foo"}, mc.selection, "wrong selection")
Beispiel #8
0
 def test_empty_options(self):
     self.assertRaises(ValueError, lambda: MultipleChoice([], False))
Beispiel #9
0
 def test_single_select_second_then_first(self):
     mc = MultipleChoice(["foo", "foo bar", "äöü"], False)
     mc.focus_next()
     mc.toggle_focused()
     mc.focus_previous()
     mc.toggle_focused()
     self.assertTrue(mc.is_selected("foo"))
     self.assertFalse(mc.is_selected("foo bar"))
     self.assertFalse(mc.is_selected("äöü"))
Beispiel #10
0
 def test_multi_select_second_third(self):
     mc = MultipleChoice(["foo", "foo bar", "äöü"], True)
     mc.focus_next()
     mc.toggle_focused()
     mc.focus_next()
     mc.toggle_focused()
     self.assertFalse(mc.is_selected("foo"))
     self.assertTrue(mc.is_selected("foo bar"))
     self.assertTrue(mc.is_selected("äöü"))
Beispiel #11
0
 def test_toggle_selected(self):
     mc = MultipleChoice(["foo", "foo bar", "äöü"], True)
     mc.select("foo")
     mc.toggle_focused()
     self.assertFalse(mc.is_selected("foo"))
Beispiel #12
0
 def test_focus_next(self):
     mc = MultipleChoice(["foo", "foo bar", "äöü"], True)
     self.assertEqual(0, mc.current_focus, "initial focus")
     self.assertTrue(mc.is_focused("foo"))
     self.assertFalse(mc.is_focused("foo bar"))
     mc.focus_next()
     self.assertEqual(1, mc.current_focus, "next focus")
     self.assertFalse(mc.is_focused("foo"))
     self.assertTrue(mc.is_focused("foo bar"))
     mc.focus_next()
     self.assertEqual(2, mc.current_focus, "next focus")
     mc.focus_next()
     self.assertEqual(0, mc.current_focus, "next focus")
     mc.focus_next()
     self.assertEqual(1, mc.current_focus, "next focus")
Beispiel #13
0
 def test_has_option(self):
     mc = MultipleChoice(["def", "abc", "ghi"], True)
     self.assertTrue(mc.has_option("abc"))
     self.assertFalse(mc.has_option("jkm"))