🐛 (api.py): Raise correct error when timeout #45

Open
Zerka30 wants to merge 2 commits from Zerka30/return-timeout into master
Showing only changes of commit d56ffcc774 - Show all commits

View file

@ -502,14 +502,14 @@ class UptimeKumaApi(object):
def _call(self, event, data=None) -> Any:
try:
r = self.sio.call(event, data, timeout=self.timeout)
r.pop("ok")
except socketio.exceptions.TimeoutError:
lucasheld commented 2023-08-29 23:03:11 +02:00 (Migrated from github.com)
Review

The response of self.sio.call is not always a dict (for example api.need_setup). In this case r.pop("ok") fails. You have deleted the code that checks if the response type is a dict.

Also you have deleted the code that checks the r["ok"] value. The UptimeKumaException is now no longer raised when Uptime Kuma responds with an error message (when r["ok"] is false).

The response of `self.sio.call` is not always a dict (for example `api.need_setup`). In this case `r.pop("ok")` fails. You have deleted the code that checks if the response type is a dict. Also you have deleted the code that checks the `r["ok"]` value. The UptimeKumaException is now no longer raised when Uptime Kuma responds with an error message (when `r["ok"]` is false).
raise Timeout(f"Timed out while waiting for event {event}")
except Exception as e:
raise UptimeKumaException(r.get("msg"))
if isinstance(r, dict) and "ok" in r:
if not r["ok"]:
raise UptimeKumaException(r.get("msg"))
r.pop("ok")
return r
# event handlers
def _event_connect(self) -> None: