From 370b7e3e18e070d4c65557b4c4ee6ddf71024f69 Mon Sep 17 00:00:00 2001 From: lucasheld Date: Tue, 26 Sep 2023 22:29:33 +0200 Subject: [PATCH] fix: drop first info event without a version closes #55 --- run_tests.sh | 2 +- tests/test_info.py | 11 +++++++++++ uptime_kuma_api/api.py | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/run_tests.sh b/run_tests.sh index 3aa0ad9..b5acfea 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -5,7 +5,7 @@ if [ $version ] then versions=("$version") else - versions=(1.23.1 1.23.0 1.22.1 1.22.0 1.21.3) + versions=(1.23.2 1.23.0 1.22.1 1.22.0 1.21.3) fi for version in ${versions[*]} diff --git a/tests/test_info.py b/tests/test_info.py index 505868c..7de5d66 100644 --- a/tests/test_info.py +++ b/tests/test_info.py @@ -1,5 +1,6 @@ import unittest +from uptime_kuma_api import UptimeKumaApi from uptime_kuma_test_case import UptimeKumaTestCase @@ -9,6 +10,16 @@ class TestInfo(UptimeKumaTestCase): self.assertIn("version", info) self.assertIn("latestVersion", info) + def test_info_with_version(self): + # If wait_events is set to 0, the first info event is normally used. + # The info event handler needs to drop this first event without a version. + self.api.logout() + self.api.disconnect() + self.api = UptimeKumaApi(self.url, wait_events=0) + self.api.login(self.username, self.password) + info = self.api.info() + self.assertIn("version", info) + if __name__ == '__main__': unittest.main() diff --git a/uptime_kuma_api/api.py b/uptime_kuma_api/api.py index 1721bde..2fbd8dc 100644 --- a/uptime_kuma_api/api.py +++ b/uptime_kuma_api/api.py @@ -626,6 +626,9 @@ class UptimeKumaApi(object): self._event_data[Event.IMPORTANT_HEARTBEAT_LIST][monitor_id] = [data] + self._event_data[Event.IMPORTANT_HEARTBEAT_LIST][monitor_id] def _event_info(self, data) -> None: + if "version" not in data: + # wait for the info event that is sent after login and contains the version + return self._event_data[Event.INFO] = data def _event_cert_info(self, monitor_id, data) -> None: