core/tests/components/tuya/common.py

76 lines
1.7 KiB
Python

"""Test code shared between test files."""
from tuyaha.devices import climate, light, switch
CLIMATE_ID = "1"
CLIMATE_DATA = {
"data": {"state": "true", "temp_unit": climate.UNIT_CELSIUS},
"id": CLIMATE_ID,
"ha_type": "climate",
"name": "TestClimate",
"dev_type": "climate",
}
LIGHT_ID = "2"
LIGHT_DATA = {
"data": {"state": "true"},
"id": LIGHT_ID,
"ha_type": "light",
"name": "TestLight",
"dev_type": "light",
}
SWITCH_ID = "3"
SWITCH_DATA = {
"data": {"state": True},
"id": SWITCH_ID,
"ha_type": "switch",
"name": "TestSwitch",
"dev_type": "switch",
}
LIGHT_ID_FAKE1 = "9998"
LIGHT_DATA_FAKE1 = {
"data": {"state": "true"},
"id": LIGHT_ID_FAKE1,
"ha_type": "light",
"name": "TestLightFake1",
"dev_type": "light",
}
LIGHT_ID_FAKE2 = "9999"
LIGHT_DATA_FAKE2 = {
"data": {"state": "true"},
"id": LIGHT_ID_FAKE2,
"ha_type": "light",
"name": "TestLightFake2",
"dev_type": "light",
}
TUYA_DEVICES = [
climate.TuyaClimate(CLIMATE_DATA, None),
light.TuyaLight(LIGHT_DATA, None),
switch.TuyaSwitch(SWITCH_DATA, None),
light.TuyaLight(LIGHT_DATA_FAKE1, None),
light.TuyaLight(LIGHT_DATA_FAKE2, None),
]
class MockTuya:
"""Mock for Tuya devices."""
def get_all_devices(self):
"""Return all configured devices."""
return TUYA_DEVICES
def get_device_by_id(self, dev_id):
"""Return configured device with dev id."""
if dev_id == LIGHT_ID_FAKE1:
return None
if dev_id == LIGHT_ID_FAKE2:
return switch.TuyaSwitch(SWITCH_DATA, None)
for device in TUYA_DEVICES:
if device.object_id() == dev_id:
return device
return None