Skip to content

Commit bb107af

Browse files
Subhasish-BeheraSubhasish-Behera
authored andcommitted
model: update _handle_update_messages_event.Tests added
Fixes #1253.
1 parent 6167f01 commit bb107af

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
@@ -2130,7 +2130,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
21302130
"topic_msg_ids": {
21312131
10: {"new subject": {1}, "old subject": {2}},
21322132
},
2133-
"edited_messages": {1},
2133+
"edited_messages": set(),
2134+
"moved_messages": {1},
21342135
"topics": {10: []},
21352136
},
21362137
False,
@@ -2163,7 +2164,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
21632164
"topic_msg_ids": {
21642165
10: {"new subject": {1, 2}, "old subject": set()},
21652166
},
2166-
"edited_messages": {1},
2167+
"edited_messages": set(),
2168+
"moved_messages": {1},
21672169
"topics": {10: []},
21682170
},
21692171
False,
@@ -2195,6 +2197,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
21952197
10: {"new subject": set(), "old subject": {1, 2}},
21962198
},
21972199
"edited_messages": {1},
2200+
"moved_messages": set(),
21982201
"topics": {10: ["new subject", "old subject"]},
21992202
},
22002203
False,
@@ -2228,7 +2231,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
22282231
"topic_msg_ids": {
22292232
10: {"new subject": {1}, "old subject": {2}},
22302233
},
2231-
"edited_messages": {1},
2234+
"edited_messages": set(),
2235+
"moved_messages": {1},
22322236
"topics": {10: []},
22332237
},
22342238
False,
@@ -2259,6 +2263,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
22592263
10: {"new subject": set(), "old subject": {1, 2}},
22602264
},
22612265
"edited_messages": {1},
2266+
"moved_messages": set(),
22622267
"topics": {10: ["new subject", "old subject"]},
22632268
},
22642269
False,
@@ -2293,6 +2298,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
22932298
10: {"new subject": {3}, "old subject": {1, 2}},
22942299
},
22952300
"edited_messages": set(),
2301+
"moved_messages": set(),
22962302
"topics": {10: []}, # This resets the cache
22972303
},
22982304
False,
@@ -2327,6 +2333,7 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
23272333
10: {"new subject": {3}, "old subject": {1, 2}},
23282334
},
23292335
"edited_messages": set(),
2336+
"moved_messages": set(),
23302337
"topics": {10: ["new subject", "old subject"]},
23312338
},
23322339
True,
@@ -2360,7 +2367,8 @@ def test_notify_users_hides_PM_content_based_on_user_setting(
23602367
"topic_msg_ids": {
23612368
10: {"new subject": {1}, "old subject": {2}},
23622369
},
2363-
"edited_messages": {1},
2370+
"edited_messages": set(),
2371+
"moved_messages": {1},
23642372
"topics": {10: ["new subject", "old subject"]},
23652373
},
23662374
True,
@@ -2393,6 +2401,7 @@ def test__handle_update_message_event(
23932401
10: {"new subject": set(), "old subject": {1, 2}},
23942402
},
23952403
"edited_messages": set(),
2404+
"moved_messages": set(),
23962405
"topics": {10: ["new subject", "old subject"]},
23972406
}
23982407
mocker.patch(MODEL + "._update_rendered_view")

zulipterminal/model.py

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

6868

69+
RESOLVED_TOPIC_PREFIX = "✔ "
70+
6971
OFFLINE_THRESHOLD_SECS = 140
7072

7173
# Adapted from zerver/models.py
@@ -1591,7 +1593,31 @@ def _handle_update_message_event(self, event: Event) -> None:
15911593
indexed_message = self.index["messages"].get(message_id, None)
15921594

15931595
if indexed_message:
1594-
self.index["edited_messages"].add(message_id)
1596+
if "orig_content" in event:
1597+
self.index["edited_messages"].add(message_id)
1598+
if "prev_stream" in event:
1599+
self.index["moved_messages"].add(message_id)
1600+
if "subject" in event:
1601+
if not event["subject"].startswith(RESOLVED_TOPIC_PREFIX):
1602+
if (
1603+
event["orig_subject"].startswith(RESOLVED_TOPIC_PREFIX)
1604+
and event["orig_subject"][2:] != event["subject"]
1605+
):
1606+
self.index["moved_messages"].add(message_id)
1607+
if not event["orig_subject"].startswith(
1608+
RESOLVED_TOPIC_PREFIX
1609+
) and not event["subject"].startswith(RESOLVED_TOPIC_PREFIX):
1610+
self.index["moved_messages"].add(message_id)
1611+
else:
1612+
if (
1613+
event["orig_subject"].startswith(RESOLVED_TOPIC_PREFIX)
1614+
and event["orig_subject"][2:] != event["subject"][2:]
1615+
):
1616+
self.index["moved_messages"].add(message_id)
1617+
else:
1618+
self.index["edited_messages"].add(message_id)
1619+
if message_id not in self.index["moved_messages"]:
1620+
self.index["edited_messages"].add(message_id)
15951621

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

0 commit comments

Comments
 (0)