Skip to content

Commit 00d2723

Browse files
rsashankpreetmishraEzio-Sarthak
committed
core/messages/views: Pass spoiler data to MsgInfoView popup helpers.
Tests amended. Co-authored-by: Preet Mishra <[email protected]> Co-authored-by: Ezio-Sarthak <[email protected]>
1 parent 8c7f143 commit 00d2723

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

tests/ui_tools/test_popups.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,7 @@ def mock_external_classes(self, mocker: MockerFixture, msg_box: MessageBox) -> N
504504
topic_links=OrderedDict(),
505505
message_links=OrderedDict(),
506506
time_mentions=list(),
507+
spoilers=list(),
507508
title="Full Rendered Message",
508509
)
509510

@@ -514,6 +515,7 @@ def test_init(self, msg_box: MessageBox) -> None:
514515
assert self.full_rendered_message.topic_links == OrderedDict()
515516
assert self.full_rendered_message.message_links == OrderedDict()
516517
assert self.full_rendered_message.time_mentions == list()
518+
assert self.full_rendered_message.spoilers == list()
517519
assert self.full_rendered_message.header.widget_list == msg_box.header
518520
assert self.full_rendered_message.footer.widget_list == msg_box.footer
519521

@@ -556,6 +558,7 @@ def test_keypress_show_msg_info(
556558
topic_links=OrderedDict(),
557559
message_links=OrderedDict(),
558560
time_mentions=list(),
561+
spoilers=list(),
559562
)
560563

561564

@@ -580,6 +583,7 @@ def mock_external_classes(self, mocker: MockerFixture, msg_box: MessageBox) -> N
580583
topic_links=OrderedDict(),
581584
message_links=OrderedDict(),
582585
time_mentions=list(),
586+
spoilers=list(),
583587
title="Full Raw Message",
584588
)
585589

@@ -590,6 +594,7 @@ def test_init(self, msg_box: MessageBox) -> None:
590594
assert self.full_raw_message.topic_links == OrderedDict()
591595
assert self.full_raw_message.message_links == OrderedDict()
592596
assert self.full_raw_message.time_mentions == list()
597+
assert self.full_raw_message.spoilers == list()
593598
assert self.full_raw_message.header.widget_list == msg_box.header
594599
assert self.full_raw_message.footer.widget_list == msg_box.footer
595600

@@ -632,6 +637,7 @@ def test_keypress_show_msg_info(
632637
topic_links=OrderedDict(),
633638
message_links=OrderedDict(),
634639
time_mentions=list(),
640+
spoilers=list(),
635641
)
636642

637643

@@ -655,6 +661,7 @@ def mock_external_classes(self, mocker: MockerFixture) -> None:
655661
topic_links=OrderedDict(),
656662
message_links=OrderedDict(),
657663
time_mentions=list(),
664+
spoilers=list(),
658665
title="Edit History",
659666
)
660667

@@ -664,6 +671,7 @@ def test_init(self) -> None:
664671
assert self.edit_history_view.topic_links == OrderedDict()
665672
assert self.edit_history_view.message_links == OrderedDict()
666673
assert self.edit_history_view.time_mentions == list()
674+
assert self.edit_history_view.spoilers == list()
667675
self.controller.model.fetch_message_history.assert_called_once_with(
668676
message_id=self.message["id"],
669677
)
@@ -703,6 +711,7 @@ def test_keypress_show_msg_info(
703711
topic_links=OrderedDict(),
704712
message_links=OrderedDict(),
705713
time_mentions=list(),
714+
spoilers=list(),
706715
)
707716

708717
@pytest.mark.parametrize(
@@ -1019,13 +1028,15 @@ def mock_external_classes(
10191028
OrderedDict(),
10201029
OrderedDict(),
10211030
list(),
1031+
list(),
10221032
)
10231033

10241034
def test_init(self, message_fixture: Message) -> None:
10251035
assert self.msg_info_view.msg == message_fixture
10261036
assert self.msg_info_view.topic_links == OrderedDict()
10271037
assert self.msg_info_view.message_links == OrderedDict()
10281038
assert self.msg_info_view.time_mentions == list()
1039+
assert self.msg_info_view.spoilers == list()
10291040

10301041
def test_pop_up_info_order(self, message_fixture: Message) -> None:
10311042
topic_links = OrderedDict([("https://bar.com", ("topic", 1, True))])
@@ -1037,6 +1048,7 @@ def test_pop_up_info_order(self, message_fixture: Message) -> None:
10371048
topic_links=topic_links,
10381049
message_links=message_links,
10391050
time_mentions=list(),
1051+
spoilers=list(),
10401052
)
10411053
msg_links = msg_info_view.button_widgets
10421054
assert msg_links == [message_links, topic_links]
@@ -1085,6 +1097,7 @@ def test_keypress_edit_history(
10851097
topic_links=OrderedDict(),
10861098
message_links=OrderedDict(),
10871099
time_mentions=list(),
1100+
spoilers=list(),
10881101
)
10891102
size = widget_size(msg_info_view)
10901103

@@ -1096,6 +1109,7 @@ def test_keypress_edit_history(
10961109
topic_links=OrderedDict(),
10971110
message_links=OrderedDict(),
10981111
time_mentions=list(),
1112+
spoilers=list(),
10991113
)
11001114
else:
11011115
self.controller.show_edit_history.assert_not_called()
@@ -1114,6 +1128,7 @@ def test_keypress_full_rendered_message(
11141128
topic_links=OrderedDict(),
11151129
message_links=OrderedDict(),
11161130
time_mentions=list(),
1131+
spoilers=list(),
11171132
)
11181133
size = widget_size(msg_info_view)
11191134

@@ -1124,6 +1139,7 @@ def test_keypress_full_rendered_message(
11241139
topic_links=OrderedDict(),
11251140
message_links=OrderedDict(),
11261141
time_mentions=list(),
1142+
spoilers=list(),
11271143
)
11281144

11291145
@pytest.mark.parametrize("key", keys_for_command("FULL_RAW_MESSAGE"))
@@ -1140,6 +1156,7 @@ def test_keypress_full_raw_message(
11401156
topic_links=OrderedDict(),
11411157
message_links=OrderedDict(),
11421158
time_mentions=list(),
1159+
spoilers=list(),
11431160
)
11441161
size = widget_size(msg_info_view)
11451162

@@ -1150,6 +1167,7 @@ def test_keypress_full_raw_message(
11501167
topic_links=OrderedDict(),
11511168
message_links=OrderedDict(),
11521169
time_mentions=list(),
1170+
spoilers=list(),
11531171
)
11541172

11551173
@pytest.mark.parametrize(
@@ -1251,6 +1269,7 @@ def test_height_reactions(
12511269
OrderedDict(),
12521270
OrderedDict(),
12531271
list(),
1272+
list(),
12541273
)
12551274
# 12 = 7 labels + 2 blank lines + 1 'Reactions' (category)
12561275
# + 4 reactions (excluding 'Message Links').

zulipterminal/core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ def show_msg_info(
265265
topic_links: Dict[str, Tuple[str, int, bool]],
266266
message_links: Dict[str, Tuple[str, int, bool]],
267267
time_mentions: List[Tuple[str, str]],
268+
spoilers: List[Tuple[int, List[Any], List[Any]]],
268269
) -> None:
269270
msg_info_view = MsgInfoView(
270271
self,
@@ -273,6 +274,7 @@ def show_msg_info(
273274
topic_links,
274275
message_links,
275276
time_mentions,
277+
spoilers,
276278
)
277279
self.show_pop_up(msg_info_view, "area:msg")
278280

@@ -343,6 +345,7 @@ def show_full_rendered_message(
343345
topic_links: Dict[str, Tuple[str, int, bool]],
344346
message_links: Dict[str, Tuple[str, int, bool]],
345347
time_mentions: List[Tuple[str, str]],
348+
spoilers: List[Tuple[int, List[Any], List[Any]]],
346349
) -> None:
347350
self.show_pop_up(
348351
FullRenderedMsgView(
@@ -351,6 +354,7 @@ def show_full_rendered_message(
351354
topic_links,
352355
message_links,
353356
time_mentions,
357+
spoilers,
354358
f"Full rendered message {SCROLL_PROMPT}",
355359
),
356360
"area:msg",
@@ -362,6 +366,7 @@ def show_full_raw_message(
362366
topic_links: Dict[str, Tuple[str, int, bool]],
363367
message_links: Dict[str, Tuple[str, int, bool]],
364368
time_mentions: List[Tuple[str, str]],
369+
spoilers: List[Tuple[int, List[Any], List[Any]]],
365370
) -> None:
366371
self.show_pop_up(
367372
FullRawMsgView(
@@ -370,6 +375,7 @@ def show_full_raw_message(
370375
topic_links,
371376
message_links,
372377
time_mentions,
378+
spoilers,
373379
f"Full raw message {SCROLL_PROMPT}",
374380
),
375381
"area:msg",
@@ -381,6 +387,7 @@ def show_edit_history(
381387
topic_links: Dict[str, Tuple[str, int, bool]],
382388
message_links: Dict[str, Tuple[str, int, bool]],
383389
time_mentions: List[Tuple[str, str]],
390+
spoilers: List[Tuple[int, List[Any], List[Any]]],
384391
) -> None:
385392
self.show_pop_up(
386393
EditHistoryView(
@@ -389,6 +396,7 @@ def show_edit_history(
389396
topic_links,
390397
message_links,
391398
time_mentions,
399+
spoilers,
392400
f"Edit History {SCROLL_PROMPT}",
393401
),
394402
"area:msg",

zulipterminal/ui_tools/messages.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1204,7 +1204,11 @@ def keypress(self, size: urwid_Size, key: str) -> Optional[str]:
12041204
self.model.controller.view.middle_column.set_focus("footer")
12051205
elif is_command_key("MSG_INFO", key):
12061206
self.model.controller.show_msg_info(
1207-
self.message, self.topic_links, self.message_links, self.time_mentions
1207+
self.message,
1208+
self.topic_links,
1209+
self.message_links,
1210+
self.time_mentions,
1211+
self.spoilers,
12081212
)
12091213
elif is_command_key("ADD_REACTION", key):
12101214
self.model.controller.show_emoji_picker(self.message)

zulipterminal/ui_tools/views.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,11 +1584,13 @@ def __init__(
15841584
topic_links: Dict[str, Tuple[str, int, bool]],
15851585
message_links: Dict[str, Tuple[str, int, bool]],
15861586
time_mentions: List[Tuple[str, str]],
1587+
spoilers: List[Tuple[int, List[Any], List[Any]]],
15871588
) -> None:
15881589
self.msg = msg
15891590
self.topic_links = topic_links
15901591
self.message_links = message_links
15911592
self.time_mentions = time_mentions
1593+
self.spoilers = spoilers
15921594
self.server_url = controller.model.server_url
15931595
date_and_time = controller.model.formatted_local_time(
15941596
msg["timestamp"], show_seconds=True, show_year=True
@@ -1733,6 +1735,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
17331735
topic_links=self.topic_links,
17341736
message_links=self.message_links,
17351737
time_mentions=self.time_mentions,
1738+
spoilers=self.spoilers,
17361739
)
17371740
elif is_command_key("VIEW_IN_BROWSER", key):
17381741
url = near_message_url(self.server_url[:-1], self.msg)
@@ -1743,6 +1746,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
17431746
topic_links=self.topic_links,
17441747
message_links=self.message_links,
17451748
time_mentions=self.time_mentions,
1749+
spoilers=self.spoilers,
17461750
)
17471751
return key
17481752
elif is_command_key("FULL_RAW_MESSAGE", key):
@@ -1751,6 +1755,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
17511755
topic_links=self.topic_links,
17521756
message_links=self.message_links,
17531757
time_mentions=self.time_mentions,
1758+
spoilers=self.spoilers,
17541759
)
17551760
return key
17561761
return super().keypress(size, key)
@@ -1804,13 +1809,15 @@ def __init__(
18041809
topic_links: Dict[str, Tuple[str, int, bool]],
18051810
message_links: Dict[str, Tuple[str, int, bool]],
18061811
time_mentions: List[Tuple[str, str]],
1812+
spoilers: List[Tuple[int, List[Any], List[Any]]],
18071813
title: str,
18081814
) -> None:
18091815
self.controller = controller
18101816
self.message = message
18111817
self.topic_links = topic_links
18121818
self.message_links = message_links
18131819
self.time_mentions = time_mentions
1820+
self.spoilers = spoilers
18141821
width = 64
18151822
widgets: List[Any] = []
18161823

@@ -1909,6 +1916,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
19091916
topic_links=self.topic_links,
19101917
message_links=self.message_links,
19111918
time_mentions=self.time_mentions,
1919+
spoilers=self.spoilers,
19121920
)
19131921
return key
19141922
return super().keypress(size, key)
@@ -1922,13 +1930,15 @@ def __init__(
19221930
topic_links: Dict[str, Tuple[str, int, bool]],
19231931
message_links: Dict[str, Tuple[str, int, bool]],
19241932
time_mentions: List[Tuple[str, str]],
1933+
spoilers: List[Tuple[int, List[Any], List[Any]]],
19251934
title: str,
19261935
) -> None:
19271936
self.controller = controller
19281937
self.message = message
19291938
self.topic_links = topic_links
19301939
self.message_links = message_links
19311940
self.time_mentions = time_mentions
1941+
self.spoilers = spoilers
19321942
max_cols, max_rows = controller.maximum_popup_dimensions()
19331943

19341944
# Get rendered message
@@ -1953,6 +1963,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
19531963
topic_links=self.topic_links,
19541964
message_links=self.message_links,
19551965
time_mentions=self.time_mentions,
1966+
spoilers=self.spoilers,
19561967
)
19571968
return key
19581969
return super().keypress(size, key)
@@ -1966,13 +1977,15 @@ def __init__(
19661977
topic_links: Dict[str, Tuple[str, int, bool]],
19671978
message_links: Dict[str, Tuple[str, int, bool]],
19681979
time_mentions: List[Tuple[str, str]],
1980+
spoilers: List[Tuple[int, List[Any], List[Any]]],
19691981
title: str,
19701982
) -> None:
19711983
self.controller = controller
19721984
self.message = message
19731985
self.topic_links = topic_links
19741986
self.message_links = message_links
19751987
self.time_mentions = time_mentions
1988+
self.spoilers = spoilers
19761989
max_cols, max_rows = controller.maximum_popup_dimensions()
19771990

19781991
# Get rendered message header and footer
@@ -2003,6 +2016,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
20032016
topic_links=self.topic_links,
20042017
message_links=self.message_links,
20052018
time_mentions=self.time_mentions,
2019+
spoilers=self.spoilers,
20062020
)
20072021
return key
20082022
return super().keypress(size, key)

0 commit comments

Comments
 (0)