option to unwrap errors

This commit is contained in:
2025-03-07 08:18:56 +01:00
parent 58f0e3dbfa
commit 3a62573ae1
2 changed files with 103 additions and 1 deletions

View File

@@ -74,3 +74,51 @@ def test_state_handler_api_error():
assert new_err.message != MESSAGE
assert new_err.api_server_error is not None
assert new_err.api_server_error == api_err
@pytest.mark.new
def test_state_handler_raising():
state_hdlr = delta_barth._management.StateHandler()
# success: should not raise
err_state = state_hdlr.SUCCESS
assert state_hdlr.unwrap(err_state) is None
# data related errors (predefined)
err_state = state_hdlr.pipe_states.BAD_QUALITY
err_descr = err_state.description
with pytest.raises(errors.UDataProcessingError):
try:
state_hdlr.unwrap(err_state)
except errors.UDataProcessingError as err:
descr = str(err)
assert err_descr in descr
raise err
# internal error, not data-related
description = "test case"
message = "an error occurred"
err_code = 101
err_state = state_hdlr.error(
description=description,
message=message,
code=err_code,
)
with pytest.raises(errors.UInternalError):
try:
state_hdlr.unwrap(err_state)
except errors.UInternalError as err:
descr = str(err)
assert description in descr
raise err
# external API error
api_err = DelBarApiError(status_code=401, message="test case", code="1234")
description = "Kommunikation mit dem API-Server aufgetreten"
msg = "Bitte beachten Sie die"
err_state = state_hdlr.api_error(error=api_err)
with pytest.raises(errors.UApiError):
try:
state_hdlr.unwrap(err_state)
except errors.UApiError as err:
descr = str(err)
assert description in descr
assert msg in descr
raise err