Skip to content

Commit

Permalink
Merge pull request #156 from scop/refactor-username-consistency
Browse files Browse the repository at this point in the history
Username consistency handling fixes
  • Loading branch information
Salamek authored Nov 6, 2022
2 parents db64fb0 + f835d21 commit 68695e4
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion huawei_lte_api/Connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def __init__(self,
password = password if password else parsed_url.password

super().__init__(url, timeout=timeout, requests_session=requests_session)
self.user_session = UserSession(self, username, password) if username else None
self.user_session = UserSession(self, username, password) if username or password else None

if login_on_demand:
warnings.warn(
Expand Down
4 changes: 2 additions & 2 deletions huawei_lte_api/Tools.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Union, Tuple
from typing import Optional, Tuple

from binascii import hexlify
import math
Expand All @@ -10,7 +10,7 @@
class Tools:

@staticmethod
def enforce_list_response(data: dict, singular_key_name: str, plural_key_name: Union[str, None] = None) -> dict:
def enforce_list_response(data: dict, singular_key_name: str, plural_key_name: Optional[str] = None) -> dict:
"""
Make sure Hosts->Host is a list
It may be returned as a single dict if only one is associated,
Expand Down
13 changes: 8 additions & 5 deletions huawei_lte_api/api/User.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import hashlib
import time
from types import TracebackType
from typing import Union, Type, Optional
from typing import Type, Optional
import requests

from huawei_lte_api.ApiGroup import ApiGroup
Expand All @@ -18,9 +18,11 @@
LoginErrorPasswordWrongException, \
ResponseErrorNotSupportedException

DEFAULT_USERNAME = 'admin'


class UserSession:
def __init__(self, session: Session, username: str, password: Union[str, None] = None):
def __init__(self, session: Session, username: str = DEFAULT_USERNAME, password: Optional[str] = None):
self.user = User(session)
self.user.login(username, password, True)

Expand All @@ -41,7 +43,7 @@ class User(ApiGroup):
def state_login(self) -> GetResponseType:
return self._session.get('user/state-login')

def _login(self, username: str, password: Union[str, None], password_type: PasswordTypeEnum = PasswordTypeEnum.BASE_64) -> bool:
def _login(self, username: str, password: Optional[str], password_type: PasswordTypeEnum = PasswordTypeEnum.BASE_64) -> bool:
if not password:
password_encoded = b''
else:
Expand Down Expand Up @@ -86,8 +88,9 @@ def _login(self, username: str, password: Union[str, None], password_type: Passw

return result == ResponseEnum.OK.value

def login(self, username: str, password: Union[str, None], force_new_login: bool = False) -> bool:
username = username if username else 'admin'
def login(self, username: str = DEFAULT_USERNAME, password: Optional[str] = None, force_new_login: bool = False) -> bool:
if username == '': # <= 1.6.4 backwards compatibility
username = DEFAULT_USERNAME
tries = 5
for i in range(tries):
try:
Expand Down

0 comments on commit 68695e4

Please sign in to comment.