From 4b58c83c3cbfa3bb8eb1f63432793ebb17f30b1f Mon Sep 17 00:00:00 2001 From: Hector Espert Date: Tue, 25 Jan 2022 16:40:41 +0100 Subject: [PATCH] Improve login exception --- oligo/asyncio/asynciber.py | 6 ++++-- oligo/exception.py | 4 ++-- oligo/requests/iber.py | 2 +- tests/test_exception.py | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/oligo/asyncio/asynciber.py b/oligo/asyncio/asynciber.py index 039a3d1..dfef8f5 100644 --- a/oligo/asyncio/asynciber.py +++ b/oligo/asyncio/asynciber.py @@ -31,7 +31,8 @@ def __init__(self) -> None: self.__session = None async def close(self): - await self.__session.close() + if self.__session: + await self.__session.close() async def __request( self, path: str, data: Optional[Union[list, dict]] = None @@ -73,8 +74,9 @@ async def login(self, user: str, password: str) -> bool: ] data = await self.__request(LOGIN_URL, data=payload) if data["success"] != "true": + await self.__session.close() self.__session = None - raise LoginException() + raise LoginException(user) return True async def measurement(self) -> dict: diff --git a/oligo/exception.py b/oligo/exception.py index 20fdf38..f1ed756 100644 --- a/oligo/exception.py +++ b/oligo/exception.py @@ -8,8 +8,8 @@ def __init__(self, status_code): class LoginException(IberException): - def __init__(self): - super().__init__('Login error, bad login') + def __init__(self, username): + super().__init__(f'Unable to log in with user {username}') class SessionException(IberException): diff --git a/oligo/requests/iber.py b/oligo/requests/iber.py index f215219..446618e 100644 --- a/oligo/requests/iber.py +++ b/oligo/requests/iber.py @@ -49,7 +49,7 @@ def login(self, user, password, session=Session()): json_response = response.json() if json_response["success"] != "true": self.__session = None - raise LoginException() + raise LoginException(user) def __check_session(self): if not self.__session: diff --git a/tests/test_exception.py b/tests/test_exception.py index 9c1cd41..49f39e1 100644 --- a/tests/test_exception.py +++ b/tests/test_exception.py @@ -13,8 +13,8 @@ def test_message(self): class TestLoginException(unittest.TestCase): def test_message(self): - login_exception = LoginException() - self.assertEqual('Login error, bad login', login_exception.args[0]) + login_exception = LoginException("pepe") + self.assertEqual('Unable to log in with user pepe', login_exception.args[0]) class TestSessionException(unittest.TestCase):