Skip to content

Commit da9ea59

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 af6979e commit da9ea59

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
@@ -899,6 +899,27 @@ def test_keypress_full_rendered_message(self, message_fixture, key, widget_size)
899899
time_mentions=list(),
900900
)
901901

902+
@pytest.mark.parametrize("key", keys_for_command("FULL_RAW_MESSAGE"))
903+
def test_keypress_full_raw_message(self, message_fixture, key, widget_size):
904+
msg_info_view = MsgInfoView(
905+
self.controller,
906+
message_fixture,
907+
title="Message Information",
908+
topic_links=OrderedDict(),
909+
message_links=OrderedDict(),
910+
time_mentions=list(),
911+
)
912+
size = widget_size(msg_info_view)
913+
914+
msg_info_view.keypress(size, key)
915+
916+
self.controller.show_full_raw_message.assert_called_once_with(
917+
message=message_fixture,
918+
topic_links=OrderedDict(),
919+
message_links=OrderedDict(),
920+
time_mentions=list(),
921+
)
922+
902923
@pytest.mark.parametrize(
903924
"key", {*keys_for_command("GO_BACK"), *keys_for_command("MSG_INFO")}
904925
)
@@ -918,10 +939,11 @@ def test_keypress_view_in_browser(self, mocker, widget_size, message_fixture, ke
918939
assert self.controller.open_in_browser.called
919940

920941
def test_height_noreactions(self):
921-
expected_height = 5
922-
# 5 = 1 (date & time) +1 (sender's name) +1 (sender's email)
942+
expected_height = 6
943+
# 6 = 1 (date & time) +1 (sender's name) +1 (sender's email)
923944
# +1 (view message in browser)
924945
# +1 (full rendered message)
946+
# +1 (full raw message)
925947
assert self.msg_info_view.height == expected_height
926948

927949
# FIXME This is the same parametrize as MessageBox:test_reactions_view
@@ -984,9 +1006,9 @@ def test_height_reactions(self, message_fixture, to_vary_in_each_message):
9841006
OrderedDict(),
9851007
list(),
9861008
)
987-
# 11 = 5 labels + 1 blank line + 1 'Reactions' (category)
1009+
# 12 = 6 labels + 1 blank line + 1 'Reactions' (category)
9881010
# + 4 reactions (excluding 'Message Links').
989-
expected_height = 11
1011+
expected_height = 12
9901012
assert self.msg_info_view.height == expected_height
9911013

9921014
@pytest.mark.parametrize(

zulipterminal/ui_tools/views.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,6 +1422,9 @@ def __init__(
14221422
full_rendered_message_keys = ", ".join(
14231423
map(repr, keys_for_command("FULL_RENDERED_MESSAGE"))
14241424
)
1425+
full_raw_message_keys = ", ".join(
1426+
map(repr, keys_for_command("FULL_RAW_MESSAGE"))
1427+
)
14251428
msg_info = [
14261429
(
14271430
"",
@@ -1437,6 +1440,10 @@ def __init__(
14371440
"Full rendered message",
14381441
f"Press {full_rendered_message_keys} to view",
14391442
),
1443+
(
1444+
"Full raw message",
1445+
f"Press {full_raw_message_keys} to view",
1446+
),
14401447
],
14411448
),
14421449
]
@@ -1550,6 +1557,14 @@ def keypress(self, size: urwid_Size, key: str) -> str:
15501557
time_mentions=self.time_mentions,
15511558
)
15521559
return key
1560+
elif is_command_key("FULL_RAW_MESSAGE", key):
1561+
self.controller.show_full_raw_message(
1562+
message=self.msg,
1563+
topic_links=self.topic_links,
1564+
message_links=self.message_links,
1565+
time_mentions=self.time_mentions,
1566+
)
1567+
return key
15531568
return super().keypress(size, key)
15541569

15551570

0 commit comments

Comments
 (0)