From 7ea89388ce9ed4f0b75d50f76a9309c10f5df1bf Mon Sep 17 00:00:00 2001 From: fredericvl Date: Tue, 28 Apr 2020 11:34:53 +0200 Subject: [PATCH] Add default timeout to all requests --- pyevacalor/__init__.py | 36 ++++++++++++++++++++++++++---------- setup.py | 2 +- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/pyevacalor/__init__.py b/pyevacalor/__init__.py index 5cec1d4..d6355a5 100644 --- a/pyevacalor/__init__.py +++ b/pyevacalor/__init__.py @@ -30,6 +30,7 @@ API_PATH_DEVICE_BUFFER_READING = "/deviceGetBufferReading" API_PATH_DEVICE_JOB_STATUS = "/deviceJobStatus/" API_PATH_DEVICE_WRITING = "/deviceRequestWriting" +DEFAULT_TIMEOUT_VALUE = 5 EVA_CALOR_CUSTOMER_CODE = "635987" EVA_COLOR_BRAND_ID = "1" @@ -116,8 +117,11 @@ def register_app_id(self): payload = json.dumps(payload) try: - response = requests.post(url, data=payload, headers=self._headers(), - allow_redirects=False) + response = requests.post(url, + data=payload, + headers=self._headers(), + allow_redirects=False, + timeout=DEFAULT_TIMEOUT_VALUE) except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): raise ConnectionError(str.format("Connection to {0} not possible", url)) @@ -146,8 +150,11 @@ def login(self): headers.update(extra_headers) try: - response = requests.post(url, data=payload, headers=headers, - allow_redirects=False) + response = requests.post(url, + data=payload, + headers=headers, + allow_redirects=False, + timeout=DEFAULT_TIMEOUT_VALUE) except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): raise ConnectionError(str.format("Connection to {0} not possible", url)) @@ -174,8 +181,11 @@ def do_refresh_token(self): payload = json.dumps(payload) try: - response = requests.post(url, data=payload, headers=self._headers(), - allow_redirects=False) + response = requests.post(url, + data=payload, + headers=self._headers(), + allow_redirects=False, + timeout=DEFAULT_TIMEOUT_VALUE) except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): raise ConnectionError(str.format("Connection to {0} not possible", url)) @@ -249,11 +259,17 @@ def handle_webcall(self, method, url, payload): try: if method == "POST": - response = requests.post(url, data=payload, headers=headers, - allow_redirects=False) + response = requests.post(url, + data=payload, + headers=headers, + allow_redirects=False, + timeout=DEFAULT_TIMEOUT_VALUE) else: - response = requests.get(url, data=payload, headers=headers, - allow_redirects=False) + response = requests.get(url, + data=payload, + headers=headers, + allow_redirects=False, + timeout=DEFAULT_TIMEOUT_VALUE) except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): raise ConnectionError(str.format("Connection to {0} not possible", url)) diff --git a/setup.py b/setup.py index 55133a8..b9a2bd4 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="pyevacalor", - version="0.0.6", + version="0.0.7", author="Frederic Van Linthoudt", author_email="frederic.van.linthoudt@gmail.com", description="pyevacalor provides controlling Eva Calor heating devices connected via the IOT Agua platform of Micronova",