From e0a7027c4ce6b57107d467f2bbd3b69b7da740cb Mon Sep 17 00:00:00 2001 From: RenierM26 <66512715+RenierM26@users.noreply.github.com> Date: Tue, 9 Mar 2021 17:57:56 +0200 Subject: [PATCH] Handle re-login method ValueError exception. --- pyezviz/client.py | 30 ++++++++++++------------------ setup.py | 2 +- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/pyezviz/client.py b/pyezviz/client.py index 08b91fc..db56d32 100644 --- a/pyezviz/client.py +++ b/pyezviz/client.py @@ -87,7 +87,7 @@ def _login(self): json_result = req.json() except ValueError as err: - raise PyEzvizError("Can't decode response") from err + raise PyEzvizError("Can't login response") from err if self._session.cookies.get("REDIRECTCOOKIE", domain=API_BASE_TLD): print("Your region is incorrect!") @@ -97,7 +97,7 @@ def _login(self): raise PyEzvizError("Incorrect login details") if json_result["retcode"] == "1002": - raise PyEzvizError("Login error: Captcha required") + raise PyEzvizError("Login error: Check your password!") if json_result["retcode"] == "1005": raise PyEzvizError("Login error: Incorrect Captcha code") @@ -149,19 +149,16 @@ def _login_api(self): req.raise_for_status() - json_result = req.json() - - if json_result["meta"]["code"] == 1100: - region = json_result["loginArea"]["apiDomain"] - raise PyEzvizError(f"region url: {region} ") - except requests.HTTPError as err: - raise PyEzvizError("Can not login to API") from err - - if req.status_code != 200: raise PyEzvizError( - f"Login error: Please check your username/password: {req.text} " - ) + "Login error: Please check your username/password" + ) from err + + json_result = req.json() + + if json_result["meta"]["code"] == 1100: + region = json_result["loginArea"]["apiDomain"] + raise PyEzvizError(f"region url: {region} ") return True @@ -556,9 +553,6 @@ def login(self): req.raise_for_status() except requests.HTTPError as err: - if err.response.status_code == 401 or 504: - self._login() - raise PyEzvizError( "Could not access Ezviz login check API: " + str(err) ) from err @@ -566,8 +560,8 @@ def login(self): try: response_json = req.json() - except ValueError as err: - raise PyEzvizError("Can't decode response" + str(err)) from err + except ValueError: + self._login() if response_json["success"] != "success": self._login() diff --git a/setup.py b/setup.py index dd92db9..3084a72 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name='pyezviz', - version="0.1.7.7", + version="0.1.7.8", license='Apache Software License 2.0', author='Pierre Ourdouille', author_email='baqs@users.github.com',