mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-04-25 08:06:25 +00:00
Add module.device to the public api (#1478)
This commit is contained in:
parent
82fbe1226e
commit
ebd370da74
@ -182,6 +182,11 @@ class Module(ABC):
|
||||
self._module = module
|
||||
self._module_features: dict[str, Feature] = {}
|
||||
|
||||
@property
|
||||
def device(self) -> Device:
|
||||
"""Return the device exposing the module."""
|
||||
return self._device
|
||||
|
||||
@property
|
||||
def _all_features(self) -> dict[str, Feature]:
|
||||
"""Get the features for this module and any sub modules."""
|
||||
|
@ -277,12 +277,12 @@ async def test_get_modules():
|
||||
# Modules on device
|
||||
module = dummy_device.modules.get("cloud")
|
||||
assert module
|
||||
assert module._device == dummy_device
|
||||
assert module.device == dummy_device
|
||||
assert isinstance(module, Cloud)
|
||||
|
||||
module = dummy_device.modules.get(Module.IotCloud)
|
||||
assert module
|
||||
assert module._device == dummy_device
|
||||
assert module.device == dummy_device
|
||||
assert isinstance(module, Cloud)
|
||||
|
||||
# Invalid modules
|
||||
|
@ -58,7 +58,7 @@ async def test_fan_module(dev: SmartDevice, mocker: MockerFixture):
|
||||
assert isinstance(dev, SmartDevice)
|
||||
fan = next(get_parent_and_child_modules(dev, Module.Fan))
|
||||
assert fan
|
||||
device = fan._device
|
||||
device = fan.device
|
||||
|
||||
await fan.set_fan_speed_level(1)
|
||||
await dev.update()
|
||||
|
@ -604,7 +604,7 @@ async def test_get_modules():
|
||||
# Modules on device
|
||||
module = dummy_device.modules.get("Cloud")
|
||||
assert module
|
||||
assert module._device == dummy_device
|
||||
assert module.device == dummy_device
|
||||
assert isinstance(module, Cloud)
|
||||
|
||||
module = dummy_device.modules.get(Module.Cloud)
|
||||
@ -617,8 +617,8 @@ async def test_get_modules():
|
||||
assert module is None
|
||||
module = next(get_parent_and_child_modules(dummy_device, "Fan"))
|
||||
assert module
|
||||
assert module._device != dummy_device
|
||||
assert module._device._parent == dummy_device
|
||||
assert module.device != dummy_device
|
||||
assert module.device.parent == dummy_device
|
||||
|
||||
# Invalid modules
|
||||
module = dummy_device.modules.get("DummyModule")
|
||||
|
@ -176,7 +176,7 @@ async def test_light_brightness(dev: Device):
|
||||
assert light
|
||||
|
||||
# Test getting the value
|
||||
feature = light._device.features["brightness"]
|
||||
feature = light.device.features["brightness"]
|
||||
assert feature.minimum_value == 0
|
||||
assert feature.maximum_value == 100
|
||||
|
||||
@ -205,7 +205,7 @@ async def test_light_color_temp(dev: Device):
|
||||
)
|
||||
|
||||
# Test getting the value
|
||||
feature = light._device.features["color_temperature"]
|
||||
feature = light.device.features["color_temperature"]
|
||||
assert isinstance(feature.minimum_value, int)
|
||||
assert isinstance(feature.maximum_value, int)
|
||||
|
||||
@ -237,7 +237,7 @@ async def test_light_set_state(dev: Device):
|
||||
light = next(get_parent_and_child_modules(dev, Module.Light))
|
||||
assert light
|
||||
# For fixtures that have a light effect active switch off
|
||||
if light_effect := light._device.modules.get(Module.LightEffect):
|
||||
if light_effect := light.device.modules.get(Module.LightEffect):
|
||||
await light_effect.set_effect(light_effect.LIGHT_EFFECTS_OFF)
|
||||
|
||||
await light.set_state(LightState(light_on=False))
|
||||
@ -264,7 +264,7 @@ async def test_light_preset_module(dev: Device, mocker: MockerFixture):
|
||||
assert preset_mod
|
||||
light_mod = next(get_parent_and_child_modules(dev, Module.Light))
|
||||
assert light_mod
|
||||
feat = preset_mod._device.features["light_preset"]
|
||||
feat = preset_mod.device.features["light_preset"]
|
||||
|
||||
preset_list = preset_mod.preset_list
|
||||
assert "Not set" in preset_list
|
||||
|
Loading…
x
Reference in New Issue
Block a user