fix: WSClient.returncode not idempotent

This commit is contained in:
Aurélien Gasser 2021-12-13 19:32:32 -05:00
parent a66f8df1df
commit 79e066a0d4
No known key found for this signature in database
GPG Key ID: 70F9318FD4FE7A73

View File

@ -63,6 +63,7 @@ class WSClient:
self._all = _IgnoredIO()
self.sock = create_websocket(configuration, url, headers)
self._connected = True
self._returncode = None
def peek_channel(self, channel, timeout=0):
"""Peek a channel and return part of the input,
@ -210,12 +211,14 @@ class WSClient:
if self.is_open():
return None
else:
err = self.read_channel(ERROR_CHANNEL)
err = yaml.safe_load(err)
if err['status'] == "Success":
return 0
return int(err['details']['causes'][0]['message'])
if self._returncode is None:
err = self.read_channel(ERROR_CHANNEL)
err = yaml.safe_load(err)
if err['status'] == "Success":
self._returncode = 0
else:
self._returncode = int(err['details']['causes'][0]['message'])
return self._returncode
def close(self, **kwargs):
"""