Initial public release
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from ha_deconz_bridge.backends.deconz import DeconzBackend
|
||||
from ha_deconz_bridge.color import Color
|
||||
from ha_deconz_bridge.lights import ChannelSpec, ControllerModeSpec, ControllerSpec, VirtualLightSpec
|
||||
|
||||
|
||||
def test_virtual_light_rejects_color_temp_without_native_ct_emitters() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
VirtualLightSpec(
|
||||
name="bad",
|
||||
supported_color_modes=("color_temp",),
|
||||
controllers={
|
||||
"1": ControllerSpec(
|
||||
zigbee_id="1",
|
||||
name="RGB only",
|
||||
modes={
|
||||
"rgb": ControllerModeSpec(
|
||||
name="rgb",
|
||||
channels={
|
||||
"r": ChannelSpec("r", Color.from_rgb((1.0, 0.0, 0.0))),
|
||||
"g": ChannelSpec("g", Color.from_rgb((0.0, 1.0, 0.0))),
|
||||
"b": ChannelSpec("b", Color.from_rgb((0.0, 0.0, 1.0))),
|
||||
},
|
||||
)
|
||||
},
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def test_controller_mode_rejects_invalid_role() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
ControllerModeSpec(
|
||||
name="rgb",
|
||||
channels={"ww": ChannelSpec("ww", Color.from_rgb((1.0, 1.0, 1.0)))},
|
||||
)
|
||||
|
||||
|
||||
def test_deconz_invalid_ct_range_is_rejected() -> None:
|
||||
resource = {
|
||||
"state": {"on": True, "reachable": True, "bri": 254, "ct": 400, "colormode": "ct"},
|
||||
"ctmin": 65279,
|
||||
"ctmax": 0,
|
||||
}
|
||||
assert DeconzBackend.extract_mireds(resource) is None
|
||||
|
||||
Reference in New Issue
Block a user