mirror of
https://github.com/python-kasa/python-kasa.git
synced 2024-12-22 11:13:34 +00:00
Add brightness to lightstrip's set_effect (#415)
* Add brightness parameter to lightstrip's set_effect * Use None as default as effects have different default brightnesses
This commit is contained in:
parent
bfafbf9512
commit
6e7a588d40
@ -89,16 +89,19 @@ class SmartLightStrip(SmartBulb):
|
||||
|
||||
@requires_update
|
||||
async def set_effect(
|
||||
self,
|
||||
effect: str,
|
||||
self, effect: str, *, brightness: Optional[int] = None
|
||||
) -> None:
|
||||
"""Set an effect on the device.
|
||||
|
||||
:param str effect: The effect to set
|
||||
:param int brightness: The wanted brightness
|
||||
"""
|
||||
if effect not in EFFECT_MAPPING_V1:
|
||||
raise SmartDeviceException(f"The effect {effect} is not a built in effect.")
|
||||
await self.set_custom_effect(EFFECT_MAPPING_V1[effect])
|
||||
effect_dict = EFFECT_MAPPING_V1[effect]
|
||||
if brightness is not None:
|
||||
effect_dict["brightness"] = brightness
|
||||
await self.set_custom_effect(effect_dict)
|
||||
|
||||
@requires_update
|
||||
async def set_custom_effect(
|
||||
|
@ -30,6 +30,23 @@ async def test_effects_lightstrip_set_effect(dev: SmartLightStrip):
|
||||
assert dev.state_information["Effect"] == "Candy Cane"
|
||||
|
||||
|
||||
@lightstrip
|
||||
@pytest.mark.parametrize("brightness", [100, 50])
|
||||
async def test_effects_lightstrip_set_effect_brightness(
|
||||
dev: SmartLightStrip, brightness, mocker
|
||||
):
|
||||
query_helper = mocker.patch("kasa.SmartLightStrip._query_helper")
|
||||
|
||||
if brightness == 100: # test that default brightness works
|
||||
await dev.set_effect("Candy Cane")
|
||||
else:
|
||||
await dev.set_effect("Candy Cane", brightness=brightness)
|
||||
|
||||
args, kwargs = query_helper.call_args_list[0]
|
||||
payload = args[2]
|
||||
assert payload["brightness"] == brightness
|
||||
|
||||
|
||||
@lightstrip
|
||||
async def test_effects_lightstrip_has_effects(dev: SmartLightStrip):
|
||||
assert dev.has_effects is True
|
||||
|
Loading…
Reference in New Issue
Block a user