Skip to content

Commit ae029fe

Browse files
model: update _handle_update_messages_event.Tests added
Fixes #1253.
1 parent 5780768 commit ae029fe

File tree

2 files changed

+40
-5
lines changed

2 files changed

+40
-5
lines changed

tests/model/test_model.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2075,7 +2075,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
20752075
"topic_msg_ids": {
20762076
10: {"new subject": {1}, "old subject": {2}},
20772077
},
2078-
"edited_messages": {1},
2078+
"edited_messages": set(),
2079+
"moved_messages": {1},
20792080
"topics": {10: []},
20802081
},
20812082
False,
@@ -2108,7 +2109,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
21082109
"topic_msg_ids": {
21092110
10: {"new subject": {1, 2}, "old subject": set()},
21102111
},
2111-
"edited_messages": {1},
2112+
"edited_messages": set(),
2113+
"moved_messages": {1},
21122114
"topics": {10: []},
21132115
},
21142116
False,
@@ -2140,6 +2142,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
21402142
10: {"new subject": set(), "old subject": {1, 2}},
21412143
},
21422144
"edited_messages": {1},
2145+
"moved_messages": set(),
21432146
"topics": {10: ["new subject", "old subject"]},
21442147
},
21452148
False,
@@ -2173,7 +2176,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
21732176
"topic_msg_ids": {
21742177
10: {"new subject": {1}, "old subject": {2}},
21752178
},
2176-
"edited_messages": {1},
2179+
"edited_messages": set(),
2180+
"moved_messages": {1},
21772181
"topics": {10: []},
21782182
},
21792183
False,
@@ -2204,6 +2208,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
22042208
10: {"new subject": set(), "old subject": {1, 2}},
22052209
},
22062210
"edited_messages": {1},
2211+
"moved_messages": set(),
22072212
"topics": {10: ["new subject", "old subject"]},
22082213
},
22092214
False,
@@ -2238,6 +2243,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
22382243
10: {"new subject": {3}, "old subject": {1, 2}},
22392244
},
22402245
"edited_messages": set(),
2246+
"moved_messages": set(),
22412247
"topics": {10: []}, # This resets the cache
22422248
},
22432249
False,
@@ -2272,6 +2278,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
22722278
10: {"new subject": {3}, "old subject": {1, 2}},
22732279
},
22742280
"edited_messages": set(),
2281+
"moved_messages": set(),
22752282
"topics": {10: ["new subject", "old subject"]},
22762283
},
22772284
True,
@@ -2305,7 +2312,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
23052312
"topic_msg_ids": {
23062313
10: {"new subject": {1}, "old subject": {2}},
23072314
},
2308-
"edited_messages": {1},
2315+
"edited_messages": set(),
2316+
"moved_messages": {1},
23092317
"topics": {10: ["new subject", "old subject"]},
23102318
},
23112319
True,
@@ -2338,6 +2346,7 @@ def test__handle_update_message_event(
23382346
10: {"new subject": set(), "old subject": {1, 2}},
23392347
},
23402348
"edited_messages": set(),
2349+
"moved_messages": set(),
23412350
"topics": {10: ["new subject", "old subject"]},
23422351
}
23432352
mocker.patch(MODEL + "._update_rendered_view")

zulipterminal/model.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
from zulipterminal.ui_tools.utils import create_msg_box_list
6565

6666

67+
RESOLVED_TOPIC_PREFIX = "✔ "
68+
6769
OFFLINE_THRESHOLD_SECS = 140
6870

6971
# Adapted from zerver/models.py
@@ -1583,7 +1585,31 @@ def _handle_update_message_event(self, event: Event) -> None:
15831585
indexed_message = self.index["messages"].get(message_id, None)
15841586

15851587
if indexed_message:
1586-
self.index["edited_messages"].add(message_id)
1588+
if "orig_content" in event:
1589+
self.index["edited_messages"].add(message_id)
1590+
if "prev_stream" in event:
1591+
self.index["moved_messages"].add(message_id)
1592+
if "subject" in event:
1593+
if not event["subject"].startswith(RESOLVED_TOPIC_PREFIX):
1594+
if (
1595+
event["orig_subject"].startswith(RESOLVED_TOPIC_PREFIX)
1596+
and event["orig_subject"][2:] != event["subject"]
1597+
):
1598+
self.index["moved_messages"].add(message_id)
1599+
if not event["orig_subject"].startswith(
1600+
RESOLVED_TOPIC_PREFIX
1601+
) and not event["subject"].startswith(RESOLVED_TOPIC_PREFIX):
1602+
self.index["moved_messages"].add(message_id)
1603+
else:
1604+
if (
1605+
event["orig_subject"].startswith(RESOLVED_TOPIC_PREFIX)
1606+
and event["orig_subject"][2:] != event["subject"][2:]
1607+
):
1608+
self.index["moved_messages"].add(message_id)
1609+
else:
1610+
self.index["edited_messages"].add(message_id)
1611+
if message_id not in self.index["moved_messages"]:
1612+
self.index["edited_messages"].add(message_id)
15871613

15881614
# Update the rendered content, if the message is indexed
15891615
if "rendered_content" in event and indexed_message:

0 commit comments

Comments
 (0)