1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
"""Unit tests for exceptions."""
import pytest
from xknx.exceptions import (
ConversionError,
CouldNotParseAddress,
CouldNotParseKNXIP,
CouldNotParseTelegram,
DeviceIllegalValue,
XKNXException,
)
@pytest.mark.parametrize(
"base,equal,diff",
[
(
ConversionError("desc1"),
ConversionError("desc1"),
ConversionError("desc2"),
),
(
CouldNotParseAddress(123),
CouldNotParseAddress(123),
CouldNotParseAddress(321),
),
(
CouldNotParseKNXIP("desc1"),
CouldNotParseKNXIP("desc1"),
CouldNotParseKNXIP("desc2"),
),
(
CouldNotParseTelegram("desc", arg1=1, arg2=2),
CouldNotParseTelegram("desc", arg1=1, arg2=2),
CouldNotParseTelegram("desc", arg1=2, arg2=1),
),
(
DeviceIllegalValue("value1", "desc"),
DeviceIllegalValue("value1", "desc"),
DeviceIllegalValue("value1", "desc2"),
),
(
XKNXException("desc1"),
XKNXException("desc1"),
XKNXException("desc2"),
),
],
)
def test_exceptions(
base: XKNXException,
equal: XKNXException,
diff: XKNXException,
) -> None:
"""Test hashability and repr of exceptions."""
assert hash(base) == hash(equal)
assert hash(base) != hash(diff)
assert base == equal
assert base != diff
assert repr(base) == repr(equal)
assert repr(base) != repr(diff)
|