supervisor/tests/utils/test_exception_helper.py
Joakim Sørensen 17559bfc8e
Extract exception message from chain for API errors ()
* Get message from excepiton chain

* cleanup
2020-10-06 15:53:58 +02:00

88 lines
2.2 KiB
Python

"""Test exception helpers."""
from supervisor.utils import check_exception_chain, get_message_from_exception_chain
def test_simple_chain_exception():
"""Test simple chain of excepiton."""
try:
raise ValueError()
except ValueError as err:
assert check_exception_chain(err, ValueError)
def test_simple_chain_exception_not():
"""Test simple chain of excepiton."""
try:
raise ValueError()
except ValueError as err:
assert not check_exception_chain(err, KeyError)
def test_simple_nested_chain_exception():
"""Test simple nested chain of excepiton."""
try:
try:
raise ValueError()
except ValueError as err:
raise KeyError() from err
except KeyError as err:
assert check_exception_chain(err, ValueError)
def test_list_nested_chain_exception():
"""Test list nested chain of excepiton."""
try:
try:
raise ValueError()
except ValueError as err:
raise KeyError() from err
except KeyError as err:
assert check_exception_chain(err, (ValueError, OSError))
def test_list_nested_chain_exception_not():
"""Test list nested chain of excepiton."""
try:
try:
raise ValueError()
except ValueError as err:
raise KeyError() from err
except KeyError as err:
assert not check_exception_chain(err, (AssertionError, OSError))
def test_simple_chain_exception_message():
"""Test simple chain of excepiton."""
try:
raise ValueError("error")
except ValueError as err:
assert get_message_from_exception_chain(err) == "error"
def test_simple_chain_exception_not_message():
"""Test simple chain of excepiton."""
try:
raise ValueError()
except ValueError as err:
assert not get_message_from_exception_chain(err)
def test_simple_nested_chain_exception_message():
"""Test simple nested chain of excepiton."""
try:
try:
raise ValueError("error")
except ValueError as err:
raise KeyError() from err
except KeyError as err:
assert get_message_from_exception_chain(err) == "error"