Skip to content

Commit 8d7fe5c

Browse files
committed
views: Add keypress events for showing/hiding full raw message.
This commit adds keypress events for showing/hiding full raw message view in message information popup. Tests amended.
1 parent c481cfc commit 8d7fe5c

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

tests/ui_tools/test_popups.py

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,27 @@ def test_keypress_full_rendered_message(self, message_fixture, key, widget_size)
874874
time_mentions=list(),
875875
)
876876

877+
@pytest.mark.parametrize("key", keys_for_command("FULL_RAW_MESSAGE"))
878+
def test_keypress_full_raw_message(self, message_fixture, key, widget_size):
879+
msg_info_view = MsgInfoView(
880+
self.controller,
881+
message_fixture,
882+
title="Message Information",
883+
topic_links=OrderedDict(),
884+
message_links=OrderedDict(),
885+
time_mentions=list(),
886+
)
887+
size = widget_size(msg_info_view)
888+
889+
msg_info_view.keypress(size, key)
890+
891+
self.controller.show_full_raw_message.assert_called_once_with(
892+
message=message_fixture,
893+
topic_links=OrderedDict(),
894+
message_links=OrderedDict(),
895+
time_mentions=list(),
896+
)
897+
877898
@pytest.mark.parametrize(
878899
"key", {*keys_for_command("GO_BACK"), *keys_for_command("MSG_INFO")}
879900
)
@@ -893,10 +914,11 @@ def test_keypress_view_in_browser(self, mocker, widget_size, message_fixture, ke
893914
assert self.controller.open_in_browser.called
894915

895916
def test_height_noreactions(self):
896-
expected_height = 5
897-
# 5 = 1 (date & time) +1 (sender's name) +1 (sender's email)
917+
expected_height = 6
918+
# 6 = 1 (date & time) +1 (sender's name) +1 (sender's email)
898919
# +1 (view message in browser)
899920
# +1 (full rendered message)
921+
# +1 (full raw message)
900922
assert self.msg_info_view.height == expected_height
901923

902924
# FIXME This is the same parametrize as MessageBox:test_reactions_view
@@ -959,9 +981,9 @@ def test_height_reactions(self, message_fixture, to_vary_in_each_message):
959981
OrderedDict(),
960982
list(),
961983
)
962-
# 11 = 5 labels + 1 blank line + 1 'Reactions' (category)
984+
# 12 = 6 labels + 1 blank line + 1 'Reactions' (category)
963985
# + 4 reactions (excluding 'Message Links').
964-
expected_height = 11
986+
expected_height = 12
965987
assert self.msg_info_view.height == expected_height
966988

967989
@pytest.mark.parametrize(

zulipterminal/ui_tools/views.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,6 +1419,9 @@ def __init__(
14191419
full_rendered_message_keys = ", ".join(
14201420
map(repr, keys_for_command("FULL_RENDERED_MESSAGE"))
14211421
)
1422+
full_raw_message_keys = ", ".join(
1423+
map(repr, keys_for_command("FULL_RAW_MESSAGE"))
1424+
)
14221425
msg_info = [
14231426
(
14241427
"",
@@ -1434,6 +1437,10 @@ def __init__(
14341437
"Full rendered message",
14351438
f"Press {full_rendered_message_keys} to view",
14361439
),
1440+
(
1441+
"Full raw message",
1442+
f"Press {full_raw_message_keys} to view",
1443+
),
14371444
],
14381445
),
14391446
]
@@ -1547,6 +1554,14 @@ def keypress(self, size: urwid_Size, key: str) -> str:
15471554
time_mentions=self.time_mentions,
15481555
)
15491556
return key
1557+
elif is_command_key("FULL_RAW_MESSAGE", key):
1558+
self.controller.show_full_raw_message(
1559+
message=self.msg,
1560+
topic_links=self.topic_links,
1561+
message_links=self.message_links,
1562+
time_mentions=self.time_mentions,
1563+
)
1564+
return key
15501565
return super().keypress(size, key)
15511566

15521567

0 commit comments

Comments
 (0)