Fix switching off light effects for iot lights strips (#961)

Fixes the newly implemented method to turn off active effects on iot devices
This commit is contained in:
Steven B
2024-06-07 11:29:26 +01:00
committed by GitHub
parent e1e2a396b8
commit b8c1b39cf0
3 changed files with 20 additions and 8 deletions

View File

@@ -317,6 +317,12 @@ class FakeIotTransport(BaseTransport):
_LOGGER.debug("New light state: %s", new_state)
self.proto["system"]["get_sysinfo"]["light_state"] = new_state
# Setting the light state on a device will turn off any active lighting effects.
if lighting_effect_state := self.proto["system"]["get_sysinfo"].get(
"lighting_effect_state"
):
lighting_effect_state["enable"] = 0
def set_preferred_state(self, new_state, *args):
"""Implement set_preferred_state."""
self.proto["system"]["get_sysinfo"]["preferred_state"][new_state["index"]] = (

View File

@@ -78,7 +78,7 @@ async def test_light_effect_module(dev: Device, mocker: MockerFixture):
assert light_effect_module
feat = dev.features["light_effect"]
call = mocker.spy(light_effect_module, "call")
call = mocker.spy(dev, "_query_helper")
effect_list = light_effect_module.effect_list
assert "Off" in effect_list
assert effect_list.index("Off") == 0