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.
This commit is contained in:
PIG208 2021-08-02 23:32:02 +08:00 committed by Tim Abbott
parent 4e5e7b3d0f
commit 05b9850ba3
2 changed files with 12 additions and 0 deletions

View file

@ -486,6 +486,11 @@ class Client:
self.has_connected = False
server_settings = self.get_server_settings()
self.zulip_version: Optional[str] = server_settings.get("zulip_version")
self.feature_level: int = server_settings.get("zulip_feature_level", 0)
assert self.zulip_version is not None
def ensure_session(self) -> None:
# Check if the session has been created already, and return

View file

@ -25,6 +25,13 @@ class BotServerTests(BotServerTestCase):
def handler_class(self) -> Any:
return BotServerTests.MockMessageHandler()
def setUp(self) -> None:
# Since initializing Client invokes `get_server_settings` that fails in the test
# environment, we need to mock it to pretend that there exists a backend.
super().setUp()
self.patch = mock.patch("zulip.Client.get_server_settings", return_value=mock.Mock())
self.patch.start()
def test_successful_request(self) -> None:
available_bots = ["helloworld"]
bots_config = {