Skip to content

Commit 05b9850

Browse files
PIG208timabbott
authored andcommitted
api: Fetch server_settings when initializing Client.
We store the information about the version of the server and the feature level for transparent compatibility handling.
1 parent 4e5e7b3 commit 05b9850

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

zulip/zulip/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,11 @@ def __init__(
486486

487487
self.has_connected = False
488488

489+
server_settings = self.get_server_settings()
490+
self.zulip_version: Optional[str] = server_settings.get("zulip_version")
491+
self.feature_level: int = server_settings.get("zulip_feature_level", 0)
492+
assert self.zulip_version is not None
493+
489494
def ensure_session(self) -> None:
490495

491496
# Check if the session has been created already, and return

zulip_botserver/tests/test_server.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ class MockLibModule:
2525
def handler_class(self) -> Any:
2626
return BotServerTests.MockMessageHandler()
2727

28+
def setUp(self) -> None:
29+
# Since initializing Client invokes `get_server_settings` that fails in the test
30+
# environment, we need to mock it to pretend that there exists a backend.
31+
super().setUp()
32+
self.patch = mock.patch("zulip.Client.get_server_settings", return_value=mock.Mock())
33+
self.patch.start()
34+
2835
def test_successful_request(self) -> None:
2936
available_bots = ["helloworld"]
3037
bots_config = {

0 commit comments

Comments
 (0)