Example #1
0
 def mock_external_classes(self, mocker, monkeypatch):
     self.controller = mocker.Mock()
     mocker.patch.object(
         self.controller, "maximum_popup_dimensions", return_value=(64, 64)
     )
     mocker.patch(LISTWALKER, return_value=[])
     self.help_view = HelpView(self.controller, "Help Menu")
 def mock_external_classes(self, mocker, monkeypatch):
     self.controller = mocker.Mock()
     mocker.patch.object(self.controller,
                         'maximum_popup_dimensions',
                         return_value=(64, 64))
     mocker.patch(VIEWS + ".urwid.SimpleFocusListWalker", return_value=[])
     self.help_view = HelpView(self.controller, 'Help Menu')
Example #3
0
 def show_help(self) -> None:
     self.loop.widget = urwid.Overlay(urwid.LineBox(
         HelpView(self), title="Help Menu ('q' quits, up/down scrolls)"),
                                      self.view,
                                      align='center',
                                      width=('relative', 100),
                                      valign='middle',
                                      height=('relative', 100))
Example #4
0
 def show_help(self) -> None:
     self.loop.widget = urwid.LineBox(
         urwid.Overlay(HelpView(self),
                       self.view,
                       align='center',
                       width=('relative', 100),
                       valign='middle',
                       height=('relative', 100)))
Example #5
0
 def show_help(self) -> None:
     help_view = HelpView(self)
     self.loop.widget = urwid.Overlay(
         urwid.LineBox(help_view, title="Help Menu (up/down scrolls)"),
         self.view,
         align='center',
         width=help_view.width + 2,  # +2 from LineBox
         valign='middle',
         height=('relative', 100))
Example #6
0
class TestHelpMenu:
    @pytest.fixture(autouse=True)
    def mock_external_classes(self, mocker, monkeypatch):
        self.controller = mocker.Mock()
        mocker.patch(VIEWS + ".urwid.SimpleFocusListWalker", return_value=[])
        self.help_view = HelpView(self.controller)

    def test_keypress_any_key(self):
        key = "a"
        size = (200, 20)
        self.help_view.keypress(size, key)
        assert not self.controller.exit_help.called

    def test_keypress_q(self):
        key = "q"
        size = (200, 20)
        self.help_view.keypress(size, key)
        assert self.controller.exit_help.called
Example #7
0
 def show_help(self) -> None:
     cols, rows = self.loop.screen.get_cols_rows()
     help_view = HelpView(self)
     self.loop.widget = urwid.Overlay(
         urwid.LineBox(help_view, title="Help Menu (up/down scrolls)"),
         self.view,
         align='center',
         valign='middle',
         # +2 to both of the following, due to LineBox
         width=help_view.width + 2,
         height=min(3 * rows // 4, help_view.number_of_actions) + 2)
class TestHelpView:
    @pytest.fixture(autouse=True)
    def mock_external_classes(self, mocker, monkeypatch):
        self.controller = mocker.Mock()
        mocker.patch.object(self.controller,
                            'maximum_popup_dimensions',
                            return_value=(64, 64))
        mocker.patch(VIEWS + ".urwid.SimpleFocusListWalker", return_value=[])
        self.help_view = HelpView(self.controller, 'Help Menu')

    def test_keypress_any_key(self, widget_size):
        key = "a"
        size = widget_size(self.help_view)
        self.help_view.keypress(size, key)
        assert not self.controller.exit_popup.called

    @pytest.mark.parametrize(
        'key', {*keys_for_command('GO_BACK'), *keys_for_command('HELP')})
    def test_keypress_exit_popup(self, key, widget_size):
        size = widget_size(self.help_view)
        self.help_view.keypress(size, key)
        assert self.controller.exit_popup.called

    def test_keypress_navigation(self, mocker, widget_size,
                                 navigation_key_expected_key_pair):
        key, expected_key = navigation_key_expected_key_pair
        size = widget_size(self.help_view)
        super_keypress = mocker.patch(VIEWS + '.urwid.ListBox.keypress')
        self.help_view.keypress(size, key)
        super_keypress.assert_called_once_with(size, expected_key)
Example #9
0
class TestHelpView:
    @pytest.fixture(autouse=True)
    def mock_external_classes(self, mocker, monkeypatch):
        self.controller = mocker.Mock()
        mocker.patch.object(
            self.controller, "maximum_popup_dimensions", return_value=(64, 64)
        )
        mocker.patch(LISTWALKER, return_value=[])
        self.help_view = HelpView(self.controller, "Help Menu")

    def test_keypress_any_key(self, widget_size):
        key = "a"
        size = widget_size(self.help_view)
        self.help_view.keypress(size, key)
        assert not self.controller.exit_popup.called

    @pytest.mark.parametrize(
        "key", {*keys_for_command("GO_BACK"), *keys_for_command("HELP")}
    )
    def test_keypress_exit_popup(self, key, widget_size):
        size = widget_size(self.help_view)
        self.help_view.keypress(size, key)
        assert self.controller.exit_popup.called

    def test_keypress_navigation(
        self, mocker, widget_size, navigation_key_expected_key_pair
    ):
        key, expected_key = navigation_key_expected_key_pair
        size = widget_size(self.help_view)
        super_keypress = mocker.patch(MODULE + ".urwid.ListBox.keypress")
        self.help_view.keypress(size, key)
        super_keypress.assert_called_once_with(size, expected_key)
Example #10
0
 def show_help(self) -> None:
     help_view = HelpView(self, "Help Menu (up/down scrolls)")
     self.show_pop_up(help_view, 'area:help')
Example #11
0
 def mock_external_classes(self, mocker, monkeypatch):
     self.controller = mocker.Mock()
     mocker.patch(VIEWS + ".urwid.SimpleFocusListWalker", return_value=[])
     self.help_view = HelpView(self.controller)