Skip to content

Commit 6faaae9

Browse files
committed
bugfix: model: Fix repeat register issue, allowing successful reconnect.
This bug was likely introduced in 75650da when the return type was inverted and this calling site was not updated. Test added.
1 parent 2f8f73a commit 6faaae9

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

tests/model/test_model.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2017,3 +2017,25 @@ def test_poll_for_events__no_disconnect(self, mocker, model,
20172017
assert not model._register_desired_events.called
20182018
assert self.client.get_events.called
20192019
assert not sleep.called
2020+
2021+
def test_poll_for_events__reconnect_ok(self, mocker, model, raising_event):
2022+
register_return_value = lambda: ""
2023+
mocker.patch("zulipterminal.model.Model._register_desired_events",
2024+
side_effect=register_return_value)
2025+
sleep = mocker.patch("zulipterminal.model.time.sleep")
2026+
2027+
self.client.get_events.side_effect = [
2028+
{
2029+
"events": [raising_event],
2030+
"result": "success",
2031+
}
2032+
]
2033+
2034+
model.queue_id = None # Initial trigger for reconnecting
2035+
2036+
with pytest.raises(self.LoopEnder):
2037+
model.poll_for_events()
2038+
2039+
model._register_desired_events.assert_called_once()
2040+
assert self.client.get_events.called
2041+
assert not sleep.called

zulipterminal/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1198,7 +1198,7 @@ def poll_for_events(self) -> None:
11981198
while True:
11991199
if queue_id is None:
12001200
while True:
1201-
if self._register_desired_events():
1201+
if not self._register_desired_events():
12021202
queue_id = self.queue_id
12031203
last_event_id = self.last_event_id
12041204
break

0 commit comments

Comments
 (0)