new architecture for error handling

This commit is contained in:
2025-03-05 12:38:12 +01:00
parent 6b4495eb7a
commit c6739ef28c
7 changed files with 129 additions and 22 deletions

View File

@@ -105,8 +105,7 @@ def test_login_logout(credentials, api_base_url):
assert resp.error.message == "Nutzer oder Passwort falsch."
# @pytest.mark.api_con_required
@pytest.mark.new
@pytest.mark.api_con_required
def test_get_sales_prognosis_data(credentials, api_base_url):
resp = common.login(
base_url=api_base_url,

43
tests/test_errors.py Normal file
View File

@@ -0,0 +1,43 @@
from __future__ import annotations
from dataclasses import asdict
from typing import Any, cast
import pytest
from delta_barth import errors
from delta_barth.types import doptResponseError
def test_error_manager_parsing():
predef_errs = errors.DATA_PIPELINE_ERRORS_DESCR
err_mgr = errors.ErrorManager()
assert err_mgr.data_pipelines is not None
parsed_pipe_errs = err_mgr.data_pipelines
parsed_pipe_errs = asdict(parsed_pipe_errs)
for err in predef_errs:
dopt_err = cast(doptResponseError, parsed_pipe_errs[err[0]])
assert isinstance(dopt_err, doptResponseError)
assert dopt_err.status_code == err[1]
assert dopt_err.description == err[2]
assert dopt_err.message == ""
err_mgr._parse_data_pipeline_errors()
def test_error_manager_internal():
DESCRIPTION = "test case"
MESSAGE = "an error occurred"
ERR_CODE = 101
err_mgr = errors.ErrorManager()
new_err = err_mgr.internal_error(
description=DESCRIPTION,
message=MESSAGE,
err_code=ERR_CODE,
)
assert new_err.status_code == ERR_CODE
assert new_err.description == DESCRIPTION
assert new_err.message == MESSAGE