import pytest from kasa import DeviceType from tests.iot.test_iotdevice import SYSINFO_SCHEMA from .conftest import plug, plug_iot, plug_smart, switch_smart, wallswitch_iot # these schemas should go to the mainlib as # they can be useful when adding support for new features/devices # as well as to check that faked devices are operating properly. @plug_iot async def test_plug_sysinfo(dev): assert dev.sys_info is not None SYSINFO_SCHEMA(dev.sys_info) assert dev.model is not None assert dev.device_type == DeviceType.Plug or dev.device_type == DeviceType.Strip @wallswitch_iot async def test_switch_sysinfo(dev): assert dev.sys_info is not None SYSINFO_SCHEMA(dev.sys_info) assert dev.model is not None assert dev.device_type == DeviceType.WallSwitch @plug_iot async def test_plug_led(dev): with pytest.deprecated_call(match="use: Module.Led in device.modules instead"): original = dev.led await dev.set_led(False) await dev.update() assert not dev.led await dev.set_led(True) await dev.update() assert dev.led await dev.set_led(original) @wallswitch_iot async def test_switch_led(dev): with pytest.deprecated_call(match="use: Module.Led in device.modules instead"): original = dev.led await dev.set_led(False) await dev.update() assert not dev.led await dev.set_led(True) await dev.update() assert dev.led await dev.set_led(original) @plug_smart async def test_plug_device_info(dev): assert dev._info is not None assert dev.model is not None assert dev.device_type == DeviceType.Plug or dev.device_type == DeviceType.Strip @switch_smart async def test_switch_device_info(dev): assert dev._info is not None assert dev.model is not None assert ( dev.device_type == DeviceType.WallSwitch or dev.device_type == DeviceType.Dimmer ) @plug def test_device_type_plug(dev): assert dev.device_type == DeviceType.Plug