change known error codes
This commit is contained in:
parent
ffbe63d1a5
commit
bfbd80d537
@ -21,22 +21,6 @@ class DelBarApiError(BaseModel):
|
|||||||
hints: str | None
|
hints: str | None
|
||||||
|
|
||||||
|
|
||||||
class LoginRequest(BaseModel):
|
|
||||||
userName: str
|
|
||||||
password: str
|
|
||||||
databaseName: str
|
|
||||||
mandantName: str
|
|
||||||
|
|
||||||
|
|
||||||
class LoginResponse(BaseModel):
|
|
||||||
token: str
|
|
||||||
error: DelBarApiError | None = None
|
|
||||||
|
|
||||||
|
|
||||||
class LogoutResponse(BaseModel):
|
|
||||||
error: DelBarApiError | None = None
|
|
||||||
|
|
||||||
|
|
||||||
def _raise_for_unknown_error(
|
def _raise_for_unknown_error(
|
||||||
resp: Response,
|
resp: Response,
|
||||||
) -> Never:
|
) -> Never:
|
||||||
@ -76,6 +60,19 @@ def ping(
|
|||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
|
# ** login
|
||||||
|
class LoginRequest(BaseModel):
|
||||||
|
userName: str
|
||||||
|
password: str
|
||||||
|
databaseName: str
|
||||||
|
mandantName: str
|
||||||
|
|
||||||
|
|
||||||
|
class LoginResponse(BaseModel):
|
||||||
|
token: str
|
||||||
|
error: DelBarApiError | None = None
|
||||||
|
|
||||||
|
|
||||||
def login(
|
def login(
|
||||||
base_url: str,
|
base_url: str,
|
||||||
user_name: str,
|
user_name: str,
|
||||||
@ -104,7 +101,7 @@ def login(
|
|||||||
# success
|
# success
|
||||||
response = LoginResponse(**resp.json())
|
response = LoginResponse(**resp.json())
|
||||||
HTTP_CONTENT_HEADERS.add_session_token(response.token)
|
HTTP_CONTENT_HEADERS.add_session_token(response.token)
|
||||||
elif resp.status_code in KnownApiErrorCodes.LOGIN.value:
|
elif resp.status_code in KnownApiErrorCodes.COMMON.value:
|
||||||
err = DelBarApiError(status_code=resp.status_code, **resp.json())
|
err = DelBarApiError(status_code=resp.status_code, **resp.json())
|
||||||
response = LoginResponse(token="", error=err)
|
response = LoginResponse(token="", error=err)
|
||||||
else: # pragma: no cover
|
else: # pragma: no cover
|
||||||
@ -113,6 +110,11 @@ def login(
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# ** logout
|
||||||
|
class LogoutResponse(BaseModel):
|
||||||
|
error: DelBarApiError | None = None
|
||||||
|
|
||||||
|
|
||||||
def logout(
|
def logout(
|
||||||
base_url: str,
|
base_url: str,
|
||||||
) -> LogoutResponse:
|
) -> LogoutResponse:
|
||||||
@ -130,7 +132,7 @@ def logout(
|
|||||||
# success
|
# success
|
||||||
response = LogoutResponse()
|
response = LogoutResponse()
|
||||||
HTTP_CONTENT_HEADERS.remove_session_token()
|
HTTP_CONTENT_HEADERS.remove_session_token()
|
||||||
elif resp.status_code in KnownApiErrorCodes.LOGOUT.value:
|
elif resp.status_code in KnownApiErrorCodes.COMMON.value:
|
||||||
err = DelBarApiError(status_code=resp.status_code, **resp.json())
|
err = DelBarApiError(status_code=resp.status_code, **resp.json())
|
||||||
response = LogoutResponse(error=err)
|
response = LogoutResponse(error=err)
|
||||||
else: # pragma: no cover
|
else: # pragma: no cover
|
||||||
|
|||||||
@ -14,5 +14,4 @@ HTTP_CONTENT_HEADERS: Final[CurrentContentHeaders] = CurrentContentHeaders(
|
|||||||
|
|
||||||
|
|
||||||
class KnownApiErrorCodes(enum.Enum):
|
class KnownApiErrorCodes(enum.Enum):
|
||||||
LOGIN = frozenset((400, 401, 409, 500))
|
COMMON = frozenset((400, 401, 409, 500))
|
||||||
LOGOUT = frozenset((400, 401, 409, 500))
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import pytest
|
|||||||
|
|
||||||
from delta_barth.api import common
|
from delta_barth.api import common
|
||||||
from delta_barth.constants import HTTP_CONTENT_HEADERS
|
from delta_barth.constants import HTTP_CONTENT_HEADERS
|
||||||
from delta_barth.errors import UnspecifiedRequestType
|
from delta_barth.errors import UnknownApiErrorCode, UnspecifiedRequestType
|
||||||
from delta_barth.types import HttpRequestTypes
|
from delta_barth.types import HttpRequestTypes
|
||||||
|
|
||||||
"http://test.com/ "
|
"http://test.com/ "
|
||||||
@ -57,6 +57,13 @@ def test_ping(api_base_url):
|
|||||||
resp = common.ping(api_base_url, HttpRequestTypes.POST)
|
resp = common.ping(api_base_url, HttpRequestTypes.POST)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.api_con_required
|
||||||
|
def test_raise_unknown_error(api_base_url):
|
||||||
|
resp = common.ping(api_base_url, HttpRequestTypes.GET)
|
||||||
|
with pytest.raises(UnknownApiErrorCode):
|
||||||
|
common._raise_for_unknown_error(resp)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.api_con_required
|
@pytest.mark.api_con_required
|
||||||
def test_login_logout(credentials, api_base_url):
|
def test_login_logout(credentials, api_base_url):
|
||||||
assert HTTP_CONTENT_HEADERS.session_token is None
|
assert HTTP_CONTENT_HEADERS.session_token is None
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user