diff --git a/tests/ui_tools/test_buttons.py b/tests/ui_tools/test_buttons.py index 3d266b22e4..8bd17a21e8 100644 --- a/tests/ui_tools/test_buttons.py +++ b/tests/ui_tools/test_buttons.py @@ -328,6 +328,15 @@ def test_activate_called_once_on_keypress( assert activate.call_count == 1 + @pytest.mark.parametrize("key", keys_for_command("USER_INFO")) + def test_keypress_USER_INFO(self, mocker, user_button, key, widget_size): + size = widget_size(user_button) + pop_up = mocker.patch("zulipterminal.core.Controller.show_user_info") + + user_button.keypress(size, key) + + pop_up.assert_called_once_with(user_button.user_id) + class TestTopicButton: @pytest.mark.parametrize( diff --git a/zulipterminal/ui_tools/buttons.py b/zulipterminal/ui_tools/buttons.py index e60fff612f..86f0e84e89 100644 --- a/zulipterminal/ui_tools/buttons.py +++ b/zulipterminal/ui_tools/buttons.py @@ -255,6 +255,7 @@ def __init__( self.email = user["email"] self.user_id = user["user_id"] + self.controller = controller self._view = view # Used in _narrow_with_compose # FIXME Is this still needed? @@ -283,6 +284,11 @@ def _narrow_with_compose(self) -> None: emails=[self.email], recipient_user_ids=[self.user_id] ) + def keypress(self, size: urwid_Size, key: str) -> Optional[str]: + if is_command_key("USER_INFO", key): + self.controller.show_user_info(self.user_id) + return super().keypress(size, key) + class TopicButton(TopButton): def __init__(