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')
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))
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)))
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))
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
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)
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)
def show_help(self) -> None: help_view = HelpView(self, "Help Menu (up/down scrolls)") self.show_pop_up(help_view, 'area:help')
def mock_external_classes(self, mocker, monkeypatch): self.controller = mocker.Mock() mocker.patch(VIEWS + ".urwid.SimpleFocusListWalker", return_value=[]) self.help_view = HelpView(self.controller)