Files
.devcontainer
.github
.vscode
home-assistant-polymer
rootfs
scripts
supervisor
tests
addons
api
backups
dbus
discovery
docker
fixtures
hardware
homeassistant
host
jobs
misc
os
plugins
resolution
security
services
store
utils
test_check_port.py
test_codenotary.py
test_common.py
test_dbus.py
test_exception_helper.py
test_json.py
test_log_format.py
test_remove_folder.py
test_yaml.py
__init__.py
common.py
conftest.py
const.py
test_arch.py
test_auth.py
test_bus.py
test_core.py
test_coresys.py
test_ingress.py
test_main.py
test_updater.py
test_validate.py
.dockerignore
.gitignore
.gitmodules
.hadolint.yaml
.pre-commit-config.yaml
.vcnignore
Dockerfile
LICENSE
MANIFEST.in
README.md
build.yaml
codecov.yaml
pylintrc
requirements.txt
requirements_tests.txt
setup.cfg
setup.py
tox.ini
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"