Skip to content

Commit 6a79987

Browse files
mubarak-mustophatimabbott
authored andcommitted
refactor: api_types/model: Remove deprecated event types.
Remove `update_display_settings` and `update_global_notifications` legacy event types. Handle `twenty_four_hour_time` and `pm_content_in_desktop_notifications` user settings inside the Model._handle_user_settings_event. Update tests.
1 parent 044575f commit 6a79987

3 files changed

Lines changed: 35 additions & 69 deletions

File tree

tests/model/test_model.py

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,6 @@ def test_register_initial_desired_events(self, mocker, initial_data):
247247
"subscription",
248248
"typing",
249249
"update_message_flags",
250-
"update_global_notifications",
251-
"update_display_settings",
252250
"user_settings",
253251
"realm_emoji",
254252
"realm_user",
@@ -263,8 +261,6 @@ def test_register_initial_desired_events(self, mocker, initial_data):
263261
"muted_topics",
264262
"realm_user",
265263
"realm_user_groups",
266-
"update_global_notifications",
267-
"update_display_settings",
268264
"user_settings",
269265
"realm_emoji",
270266
"custom_profile_fields",
@@ -4444,38 +4440,41 @@ def test__handle_user_settings_event(self, mocker, model, value):
44444440
model._handle_user_settings_event(event)
44454441
assert model.user_settings()[setting] == value
44464442

4447-
@pytest.mark.parametrize("setting", [True, False])
4448-
def test_update_pm_content_in_desktop_notifications(self, mocker, model, setting):
4449-
setting_name = "pm_content_in_desktop_notifications"
4443+
@pytest.mark.parametrize("value", [True, False])
4444+
def test_update_pm_content_in_desktop_notifications(self, mocker, model, value):
4445+
setting = "pm_content_in_desktop_notifications"
44504446
event = {
4451-
"type": "update_global_notifications",
4452-
"notification_name": setting_name,
4453-
"setting": setting,
4447+
"type": "user_settings",
4448+
"op": "update",
4449+
"property": setting,
4450+
"value": value,
44544451
}
4455-
model._user_settings[setting_name] = not setting
4452+
model._user_settings[setting] = not value
44564453

4457-
model._handle_update_global_notifications_event(event)
4454+
model._handle_user_settings_event(event)
44584455

4459-
assert model.user_settings()[setting_name] == setting
4456+
assert model.user_settings()[setting] == event["value"]
44604457

4461-
@pytest.mark.parametrize("setting", [True, False])
4462-
def test_update_twenty_four_hour_format(self, mocker, model, setting):
4458+
@pytest.mark.parametrize("value", [True, False])
4459+
def test_update_twenty_four_hour_format(self, mocker, model, value):
4460+
setting = "twenty_four_hour_time"
44634461
event = {
4464-
"type": "update_display_settings",
4465-
"setting_name": "twenty_four_hour_time",
4466-
"setting": setting,
4462+
"type": "user_settings",
4463+
"op": "update",
4464+
"property": setting,
4465+
"value": value,
44674466
}
44684467
first_msg_w = mocker.Mock()
44694468
second_msg_w = mocker.Mock()
44704469
first_msg_w.original_widget.message = {"id": 1}
44714470
second_msg_w.original_widget.message = {"id": 2}
44724471
self.controller.view.message_view = mocker.Mock(log=[first_msg_w, second_msg_w])
44734472
create_msg_box_list = mocker.patch(MODULE + ".create_msg_box_list")
4474-
model._user_settings["twenty_four_hour_format"] = not setting
4473+
model._user_settings["twenty_four_hour_format"] = not value
44754474

4476-
model._handle_update_display_settings_event(event)
4475+
model._handle_user_settings_event(event)
44774476

4478-
assert model.user_settings()["twenty_four_hour_time"] == event["setting"]
4477+
assert model.user_settings()["twenty_four_hour_time"] == event["value"]
44794478
assert create_msg_box_list.call_count == len(
44804479
self.controller.view.message_view.log
44814480
)

zulipterminal/api_types.py

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,11 @@ class UpdateRealmEmojiEvent(TypedDict):
589589
# -----------------------------------------------------------------------------
590590
# See https://zulip.com/api/get-events#user_settings-update
591591
# This is specifically only those supported by ZT
592-
SupportedUserSettings = Literal["send_private_typing_notifications"]
592+
SupportedUserSettings = Literal[
593+
"send_private_typing_notifications",
594+
"twenty_four_hour_time",
595+
"pm_content_in_desktop_notifications",
596+
]
593597

594598

595599
class UpdateUserSettingsEvent(TypedDict):
@@ -599,30 +603,6 @@ class UpdateUserSettingsEvent(TypedDict):
599603
value: Any
600604

601605

602-
# -----------------------------------------------------------------------------
603-
# See https://zulip.com/api/get-events#update_global_notifications
604-
# This is specifically only those supported by ZT
605-
SupportedGlobalNotificationSettings = Literal["pm_content_in_desktop_notifications"]
606-
607-
608-
class UpdateGlobalNotificationsEvent(TypedDict):
609-
type: Literal["update_global_notifications"]
610-
notification_name: SupportedGlobalNotificationSettings
611-
setting: Any
612-
613-
614-
# -----------------------------------------------------------------------------
615-
# See https://zulip.com/api/get-events#update_display_settings
616-
# This is specifically only those supported by ZT
617-
SupportedDisplaySettings = Literal["twenty_four_hour_time"]
618-
619-
620-
class UpdateDisplaySettingsEvent(TypedDict):
621-
type: Literal["update_display_settings"]
622-
setting_name: SupportedDisplaySettings
623-
setting: bool
624-
625-
626606
# -----------------------------------------------------------------------------
627607
Event = Union[
628608
MessageEvent,
@@ -634,10 +614,8 @@ class UpdateDisplaySettingsEvent(TypedDict):
634614
SubscriptionPeerAddRemoveEvent,
635615
TypingEvent,
636616
UpdateMessageFlagsEvent,
637-
UpdateDisplaySettingsEvent,
638617
UpdateRealmEmojiEvent,
639618
UpdateUserSettingsEvent,
640-
UpdateGlobalNotificationsEvent,
641619
RealmUserEvent,
642620
]
643621

zulipterminal/model.py

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,6 @@ def __init__(self, controller: Any) -> None:
138138
"muted_topics",
139139
"realm_user", # Enables cross_realm_bots
140140
"realm_user_groups",
141-
"update_global_notifications",
142-
"update_display_settings",
143141
"user_settings",
144142
"realm_emoji",
145143
"custom_profile_fields",
@@ -157,8 +155,6 @@ def __init__(self, controller: Any) -> None:
157155
"subscription": self._handle_subscription_event,
158156
"typing": self._handle_typing_event,
159157
"update_message_flags": self._handle_update_message_flags_event,
160-
"update_global_notifications": self._handle_update_global_notifications_event, # noqa: E501
161-
"update_display_settings": self._handle_update_display_settings_event,
162158
"user_settings": self._handle_user_settings_event,
163159
"realm_emoji": self._handle_update_emoji_event,
164160
"realm_user": self._handle_realm_user_event,
@@ -2056,29 +2052,22 @@ def _handle_user_settings_event(self, event: Event) -> None:
20562052
# Update the setting (property) to the value, but only if already initialized
20572053
if event["property"] in self._user_settings:
20582054
setting = event["property"]
2055+
if setting == "twenty_four_hour_time":
2056+
self._update_display()
20592057
self._user_settings[setting] = event["value"]
20602058

2061-
def _handle_update_global_notifications_event(self, event: Event) -> None:
2062-
assert event["type"] == "update_global_notifications"
2063-
to_update = event["notification_name"]
2064-
if to_update == "pm_content_in_desktop_notifications":
2065-
self._user_settings[to_update] = event["setting"]
2066-
2067-
def _handle_update_display_settings_event(self, event: Event) -> None:
2059+
def _update_display(self) -> None:
20682060
"""
20692061
Handle change to user display setting (Eg: Time format)
20702062
"""
2071-
assert event["type"] == "update_display_settings"
20722063
view = self.controller.view
2073-
if event["setting_name"] == "twenty_four_hour_time":
2074-
self._user_settings["twenty_four_hour_time"] = event["setting"]
2075-
for msg_w in view.message_view.log:
2076-
msg_box = msg_w.original_widget
2077-
msg_id = msg_box.message["id"]
2078-
last_msg = msg_box.last_message
2079-
msg_pos = view.message_view.log.index(msg_w)
2080-
msg_w_list = create_msg_box_list(self, [msg_id], last_message=last_msg)
2081-
view.message_view.log[msg_pos] = msg_w_list[0]
2064+
for msg_w in view.message_view.log:
2065+
msg_box = msg_w.original_widget
2066+
msg_id = msg_box.message["id"]
2067+
last_msg = msg_box.last_message
2068+
msg_pos = view.message_view.log.index(msg_w)
2069+
msg_w_list = create_msg_box_list(self, [msg_id], last_message=last_msg)
2070+
view.message_view.log[msg_pos] = msg_w_list[0]
20822071
self.controller.update_screen()
20832072

20842073
def _handle_realm_user_event(self, event: Event) -> None:

0 commit comments

Comments
 (0)