Skip to content

Commit be9f757

Browse files
committed
core/views: Pass spoiler data to MsgInfoView popup helpers.
1 parent 72bd63f commit be9f757

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
@@ -469,6 +469,7 @@ def mock_external_classes(self, mocker: MockerFixture, msg_box: MessageBox) -> N
469469
topic_links=OrderedDict(),
470470
message_links=OrderedDict(),
471471
time_mentions=list(),
472+
spoilers=list(),
472473
title="Full Rendered Message",
473474
)
474475

@@ -479,6 +480,7 @@ def test_init(self, msg_box: MessageBox) -> None:
479480
assert self.full_rendered_message.topic_links == OrderedDict()
480481
assert self.full_rendered_message.message_links == OrderedDict()
481482
assert self.full_rendered_message.time_mentions == list()
483+
assert self.full_rendered_message.spoilers == list()
482484
assert self.full_rendered_message.header.widget_list == msg_box.header
483485
assert self.full_rendered_message.footer.widget_list == msg_box.footer
484486

@@ -521,6 +523,7 @@ def test_keypress_show_msg_info(
521523
topic_links=OrderedDict(),
522524
message_links=OrderedDict(),
523525
time_mentions=list(),
526+
spoilers=list(),
524527
)
525528

526529

@@ -545,6 +548,7 @@ def mock_external_classes(self, mocker: MockerFixture, msg_box: MessageBox) -> N
545548
topic_links=OrderedDict(),
546549
message_links=OrderedDict(),
547550
time_mentions=list(),
551+
spoilers=list(),
548552
title="Full Raw Message",
549553
)
550554

@@ -555,6 +559,7 @@ def test_init(self, msg_box: MessageBox) -> None:
555559
assert self.full_raw_message.topic_links == OrderedDict()
556560
assert self.full_raw_message.message_links == OrderedDict()
557561
assert self.full_raw_message.time_mentions == list()
562+
assert self.full_raw_message.spoilers == list()
558563
assert self.full_raw_message.header.widget_list == msg_box.header
559564
assert self.full_raw_message.footer.widget_list == msg_box.footer
560565

@@ -597,6 +602,7 @@ def test_keypress_show_msg_info(
597602
topic_links=OrderedDict(),
598603
message_links=OrderedDict(),
599604
time_mentions=list(),
605+
spoilers=list(),
600606
)
601607

602608

@@ -620,6 +626,7 @@ def mock_external_classes(self, mocker: MockerFixture) -> None:
620626
topic_links=OrderedDict(),
621627
message_links=OrderedDict(),
622628
time_mentions=list(),
629+
spoilers=list(),
623630
title="Edit History",
624631
)
625632

@@ -629,6 +636,7 @@ def test_init(self) -> None:
629636
assert self.edit_history_view.topic_links == OrderedDict()
630637
assert self.edit_history_view.message_links == OrderedDict()
631638
assert self.edit_history_view.time_mentions == list()
639+
assert self.edit_history_view.spoilers == list()
632640
self.controller.model.fetch_message_history.assert_called_once_with(
633641
message_id=self.message["id"],
634642
)
@@ -668,6 +676,7 @@ def test_keypress_show_msg_info(
668676
topic_links=OrderedDict(),
669677
message_links=OrderedDict(),
670678
time_mentions=list(),
679+
spoilers=list(),
671680
)
672681

673682
@pytest.mark.parametrize(
@@ -986,13 +995,15 @@ def mock_external_classes(
986995
OrderedDict(),
987996
OrderedDict(),
988997
list(),
998+
list(),
989999
)
9901000

9911001
def test_init(self, message_fixture: Message) -> None:
9921002
assert self.msg_info_view.msg == message_fixture
9931003
assert self.msg_info_view.topic_links == OrderedDict()
9941004
assert self.msg_info_view.message_links == OrderedDict()
9951005
assert self.msg_info_view.time_mentions == list()
1006+
assert self.msg_info_view.spoilers == list()
9961007

9971008
def test_pop_up_info_order(self, message_fixture: Message) -> None:
9981009
topic_links = OrderedDict([("https://bar.com", ("topic", 1, True))])
@@ -1004,6 +1015,7 @@ def test_pop_up_info_order(self, message_fixture: Message) -> None:
10041015
topic_links=topic_links,
10051016
message_links=message_links,
10061017
time_mentions=list(),
1018+
spoilers=list(),
10071019
)
10081020
msg_links = msg_info_view.button_widgets
10091021
assert msg_links == [message_links, topic_links]
@@ -1052,6 +1064,7 @@ def test_keypress_edit_history(
10521064
topic_links=OrderedDict(),
10531065
message_links=OrderedDict(),
10541066
time_mentions=list(),
1067+
spoilers=list(),
10551068
)
10561069
size = widget_size(msg_info_view)
10571070

@@ -1063,6 +1076,7 @@ def test_keypress_edit_history(
10631076
topic_links=OrderedDict(),
10641077
message_links=OrderedDict(),
10651078
time_mentions=list(),
1079+
spoilers=list(),
10661080
)
10671081
else:
10681082
self.controller.show_edit_history.assert_not_called()
@@ -1081,6 +1095,7 @@ def test_keypress_full_rendered_message(
10811095
topic_links=OrderedDict(),
10821096
message_links=OrderedDict(),
10831097
time_mentions=list(),
1098+
spoilers=list(),
10841099
)
10851100
size = widget_size(msg_info_view)
10861101

@@ -1091,6 +1106,7 @@ def test_keypress_full_rendered_message(
10911106
topic_links=OrderedDict(),
10921107
message_links=OrderedDict(),
10931108
time_mentions=list(),
1109+
spoilers=list(),
10941110
)
10951111

10961112
@pytest.mark.parametrize("key", keys_for_command("FULL_RAW_MESSAGE"))
@@ -1107,6 +1123,7 @@ def test_keypress_full_raw_message(
11071123
topic_links=OrderedDict(),
11081124
message_links=OrderedDict(),
11091125
time_mentions=list(),
1126+
spoilers=list(),
11101127
)
11111128
size = widget_size(msg_info_view)
11121129

@@ -1117,6 +1134,7 @@ def test_keypress_full_raw_message(
11171134
topic_links=OrderedDict(),
11181135
message_links=OrderedDict(),
11191136
time_mentions=list(),
1137+
spoilers=list(),
11201138
)
11211139

11221140
@pytest.mark.parametrize(
@@ -1218,6 +1236,7 @@ def test_height_reactions(
12181236
OrderedDict(),
12191237
OrderedDict(),
12201238
list(),
1239+
list(),
12211240
)
12221241
# 12 = 7 labels + 2 blank lines + 1 'Reactions' (category)
12231242
# + 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
@@ -1568,11 +1568,13 @@ def __init__(
15681568
topic_links: Dict[str, Tuple[str, int, bool]],
15691569
message_links: Dict[str, Tuple[str, int, bool]],
15701570
time_mentions: List[Tuple[str, str]],
1571+
spoilers: List[Tuple[int, List[Any], List[Any]]],
15711572
) -> None:
15721573
self.msg = msg
15731574
self.topic_links = topic_links
15741575
self.message_links = message_links
15751576
self.time_mentions = time_mentions
1577+
self.spoilers = spoilers
15761578
self.server_url = controller.model.server_url
15771579
date_and_time = controller.model.formatted_local_time(
15781580
msg["timestamp"], show_seconds=True, show_year=True
@@ -1717,6 +1719,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
17171719
topic_links=self.topic_links,
17181720
message_links=self.message_links,
17191721
time_mentions=self.time_mentions,
1722+
spoilers=self.spoilers,
17201723
)
17211724
elif is_command_key("VIEW_IN_BROWSER", key):
17221725
url = near_message_url(self.server_url[:-1], self.msg)
@@ -1727,6 +1730,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
17271730
topic_links=self.topic_links,
17281731
message_links=self.message_links,
17291732
time_mentions=self.time_mentions,
1733+
spoilers=self.spoilers,
17301734
)
17311735
return key
17321736
elif is_command_key("FULL_RAW_MESSAGE", key):
@@ -1735,6 +1739,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
17351739
topic_links=self.topic_links,
17361740
message_links=self.message_links,
17371741
time_mentions=self.time_mentions,
1742+
spoilers=self.spoilers,
17381743
)
17391744
return key
17401745
return super().keypress(size, key)
@@ -1784,13 +1789,15 @@ def __init__(
17841789
topic_links: Dict[str, Tuple[str, int, bool]],
17851790
message_links: Dict[str, Tuple[str, int, bool]],
17861791
time_mentions: List[Tuple[str, str]],
1792+
spoilers: List[Tuple[int, List[Any], List[Any]]],
17871793
title: str,
17881794
) -> None:
17891795
self.controller = controller
17901796
self.message = message
17911797
self.topic_links = topic_links
17921798
self.message_links = message_links
17931799
self.time_mentions = time_mentions
1800+
self.spoilers = spoilers
17941801
width = 64
17951802
widgets: List[Any] = []
17961803

@@ -1889,6 +1896,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
18891896
topic_links=self.topic_links,
18901897
message_links=self.message_links,
18911898
time_mentions=self.time_mentions,
1899+
spoilers=self.spoilers,
18921900
)
18931901
return key
18941902
return super().keypress(size, key)
@@ -1902,13 +1910,15 @@ def __init__(
19021910
topic_links: Dict[str, Tuple[str, int, bool]],
19031911
message_links: Dict[str, Tuple[str, int, bool]],
19041912
time_mentions: List[Tuple[str, str]],
1913+
spoilers: List[Tuple[int, List[Any], List[Any]]],
19051914
title: str,
19061915
) -> None:
19071916
self.controller = controller
19081917
self.message = message
19091918
self.topic_links = topic_links
19101919
self.message_links = message_links
19111920
self.time_mentions = time_mentions
1921+
self.spoilers = spoilers
19121922
max_cols, max_rows = controller.maximum_popup_dimensions()
19131923

19141924
# Get rendered message
@@ -1933,6 +1943,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
19331943
topic_links=self.topic_links,
19341944
message_links=self.message_links,
19351945
time_mentions=self.time_mentions,
1946+
spoilers=self.spoilers,
19361947
)
19371948
return key
19381949
return super().keypress(size, key)
@@ -1946,13 +1957,15 @@ def __init__(
19461957
topic_links: Dict[str, Tuple[str, int, bool]],
19471958
message_links: Dict[str, Tuple[str, int, bool]],
19481959
time_mentions: List[Tuple[str, str]],
1960+
spoilers: List[Tuple[int, List[Any], List[Any]]],
19491961
title: str,
19501962
) -> None:
19511963
self.controller = controller
19521964
self.message = message
19531965
self.topic_links = topic_links
19541966
self.message_links = message_links
19551967
self.time_mentions = time_mentions
1968+
self.spoilers = spoilers
19561969
max_cols, max_rows = controller.maximum_popup_dimensions()
19571970

19581971
# Get rendered message header and footer
@@ -1983,6 +1996,7 @@ def keypress(self, size: urwid_Size, key: str) -> str:
19831996
topic_links=self.topic_links,
19841997
message_links=self.message_links,
19851998
time_mentions=self.time_mentions,
1999+
spoilers=self.spoilers,
19862000
)
19872001
return key
19882002
return super().keypress(size, key)

0 commit comments

Comments
 (0)