option to unwrap errors
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user