mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-08-09 20:24:02 +00:00
Add double click module for smart buttons
This commit is contained in:
@@ -167,6 +167,12 @@ class FakeSmartTransport(BaseTransport):
|
||||
"setup_payload": "00:0000000-0000.00.000",
|
||||
},
|
||||
),
|
||||
"get_double_click_info": (
|
||||
"double_click",
|
||||
{
|
||||
"enable": False,
|
||||
},
|
||||
),
|
||||
}
|
||||
|
||||
async def send(self, request: str):
|
||||
|
43
tests/smart/modules/test_doubleclick.py
Normal file
43
tests/smart/modules/test_doubleclick.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""Tests for smart double click module."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from kasa import Device
|
||||
from kasa.smartcam.smartcammodule import SmartModule
|
||||
|
||||
from ...device_fixtures import parametrize
|
||||
|
||||
doubleclick = parametrize(
|
||||
"has double click", component_filter="double_click", protocol_filter={"SMART.CHILD"}
|
||||
)
|
||||
|
||||
|
||||
@doubleclick
|
||||
async def test_doubleclick(dev: Device):
|
||||
"""Test device double click."""
|
||||
doubleclick = dev.modules.get(SmartModule.SmartDoubleClick)
|
||||
assert doubleclick
|
||||
|
||||
dc_feat = dev.features.get("double_click")
|
||||
assert dc_feat
|
||||
|
||||
original_enabled = doubleclick.enabled
|
||||
|
||||
try:
|
||||
await doubleclick.set_enabled(not original_enabled)
|
||||
await dev.update()
|
||||
assert doubleclick.enabled is not original_enabled
|
||||
assert dc_feat.value is not original_enabled
|
||||
|
||||
await doubleclick.set_enabled(original_enabled)
|
||||
await dev.update()
|
||||
assert doubleclick.enabled is original_enabled
|
||||
assert dc_feat.value is original_enabled
|
||||
|
||||
await dc_feat.set_value(not original_enabled)
|
||||
await dev.update()
|
||||
assert doubleclick.enabled is not original_enabled
|
||||
assert dc_feat.value is not original_enabled
|
||||
|
||||
finally:
|
||||
await doubleclick.set_enabled(original_enabled)
|
Reference in New Issue
Block a user