Skip to content

Commit 783b392

Browse files
committed
buttons/views: Add keypress events to trigger full message popup view.
This commit adds event to trigger full message view on pressing binded key 'f' in message info view. Visual change: * Hotkey help for full msg view appended in message info popup. Tests amended. Tests added (for added keypress events).
1 parent 3315473 commit 783b392

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

tests/ui_tools/test_popups.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,21 @@ def test_keypress_edit_history(self, message_fixture, key, widget_size,
586586
else:
587587
self.controller.show_edit_history.assert_not_called()
588588

589+
@pytest.mark.parametrize('key', keys_for_command('FULL_MSG_VIEW'))
590+
def test_keypress_full_msg(self, message_fixture, key, widget_size):
591+
msg_info_view = MsgInfoView(self.controller, message_fixture,
592+
title='Message Information',
593+
message_links=OrderedDict(),
594+
time_mentions=list())
595+
size = widget_size(msg_info_view)
596+
msg_info_view.keypress(size, key)
597+
598+
self.controller.show_full_msg.assert_called_once_with(
599+
message=message_fixture,
600+
message_links=OrderedDict(),
601+
time_mentions=list(),
602+
)
603+
589604
@pytest.mark.parametrize('key', {*keys_for_command('GO_BACK'),
590605
*keys_for_command('MSG_INFO')})
591606
def test_keypress_exit_popup(self, key, widget_size):
@@ -594,7 +609,7 @@ def test_keypress_exit_popup(self, key, widget_size):
594609
assert self.controller.exit_popup.called
595610

596611
def test_height_noreactions(self):
597-
expected_height = 3
612+
expected_height = 4 # +1 due to full msg view key
598613
assert self.msg_info_view.height == expected_height
599614

600615
# FIXME This is the same parametrize as MessageBox:test_reactions_view
@@ -642,8 +657,9 @@ def test_height_reactions(self, message_fixture, to_vary_in_each_message):
642657
self.msg_info_view = MsgInfoView(self.controller, varied_message,
643658
'Message Information', OrderedDict(),
644659
list())
645-
# 9 = 3 labels + 1 blank line + 1 'Reactions' (category) + 4 reactions.
646-
expected_height = 9
660+
# 10 = 4 labels + 1 blank line + 1 'Reactions' (category)
661+
# + 4 reactions.
662+
expected_height = 10
647663
assert self.msg_info_view.height == expected_height
648664

649665
def test_keypress_navigation(self, mocker, widget_size,

zulipterminal/ui_tools/views.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1303,10 +1303,13 @@ def __init__(self, controller: Any, msg: Message, title: str,
13031303
date_and_time = controller.model.formatted_local_time(
13041304
msg['timestamp'], show_seconds=True)
13051305

1306+
full_msg_keys = ', '.join(map(repr, keys_for_command('FULL_MSG_VIEW')))
13061307
msg_info = [
13071308
('', [('Date & Time', date_and_time),
13081309
('Sender', msg['sender_full_name']),
1309-
('Sender\'s Email ID', msg['sender_email'])]),
1310+
('Sender\'s Email ID', msg['sender_email']),
1311+
('Full message', 'Press {} to view'
1312+
.format(full_msg_keys))]),
13101313
]
13111314
# Only show the 'Edit History' label for edited messages.
13121315
self.show_edit_history_label = (
@@ -1377,6 +1380,13 @@ def keypress(self, size: urwid_Size, key: str) -> str:
13771380
message_links=self.message_links,
13781381
time_mentions=self.time_mentions,
13791382
)
1383+
elif (is_command_key('FULL_MSG_VIEW', key)):
1384+
self.controller.show_full_msg(
1385+
message=self.msg,
1386+
message_links=self.message_links,
1387+
time_mentions=self.time_mentions,
1388+
)
1389+
return key
13801390
return super().keypress(size, key)
13811391

13821392

0 commit comments

Comments
 (0)