change known error codes
This commit is contained in:
parent
ffbe63d1a5
commit
bfbd80d537
@ -21,22 +21,6 @@ class DelBarApiError(BaseModel):
|
||||
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(
|
||||
resp: Response,
|
||||
) -> Never:
|
||||
@ -76,6 +60,19 @@ def ping(
|
||||
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(
|
||||
base_url: str,
|
||||
user_name: str,
|
||||
@ -104,7 +101,7 @@ def login(
|
||||
# success
|
||||
response = LoginResponse(**resp.json())
|
||||
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())
|
||||
response = LoginResponse(token="", error=err)
|
||||
else: # pragma: no cover
|
||||
@ -113,6 +110,11 @@ def login(
|
||||
return response
|
||||
|
||||
|
||||
# ** logout
|
||||
class LogoutResponse(BaseModel):
|
||||
error: DelBarApiError | None = None
|
||||
|
||||
|
||||
def logout(
|
||||
base_url: str,
|
||||
) -> LogoutResponse:
|
||||
@ -130,7 +132,7 @@ def logout(
|
||||
# success
|
||||
response = LogoutResponse()
|
||||
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())
|
||||
response = LogoutResponse(error=err)
|
||||
else: # pragma: no cover
|
||||
|
||||
@ -14,5 +14,4 @@ HTTP_CONTENT_HEADERS: Final[CurrentContentHeaders] = CurrentContentHeaders(
|
||||
|
||||
|
||||
class KnownApiErrorCodes(enum.Enum):
|
||||
LOGIN = frozenset((400, 401, 409, 500))
|
||||
LOGOUT = frozenset((400, 401, 409, 500))
|
||||
COMMON = frozenset((400, 401, 409, 500))
|
||||
|
||||
@ -2,7 +2,7 @@ import pytest
|
||||
|
||||
from delta_barth.api import common
|
||||
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
|
||||
|
||||
"http://test.com/ "
|
||||
@ -57,6 +57,13 @@ def test_ping(api_base_url):
|
||||
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
|
||||
def test_login_logout(credentials, api_base_url):
|
||||
assert HTTP_CONTENT_HEADERS.session_token is None
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user