mirror of
https://github.com/home-assistant/core.git
synced 2025-09-06 21:31:34 +02:00
Speedup Tuya snapshot tests (#150198)
This commit is contained in:
@@ -532,13 +532,14 @@ async def initialize_entry(
|
|||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: CustomerDevice | list[CustomerDevice],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the Tuya component with a mock manager and config entry."""
|
"""Initialize the Tuya component with a mock manager and config entry."""
|
||||||
|
if not isinstance(mock_devices, list):
|
||||||
|
mock_devices = [mock_devices]
|
||||||
|
mock_manager.device_map = {device.id: device for device in mock_devices}
|
||||||
|
|
||||||
# Setup
|
# Setup
|
||||||
mock_manager.device_map = {
|
|
||||||
mock_device.id: mock_device,
|
|
||||||
}
|
|
||||||
mock_config_entry.add_to_hass(hass)
|
mock_config_entry.add_to_hass(hass)
|
||||||
|
|
||||||
# Initialize the component
|
# Initialize the component
|
||||||
|
@@ -21,7 +21,7 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.helpers.json import json_dumps
|
from homeassistant.helpers.json import json_dumps
|
||||||
from homeassistant.util import dt as dt_util
|
from homeassistant.util import dt as dt_util
|
||||||
|
|
||||||
from . import MockDeviceListener
|
from . import DEVICE_MOCKS, MockDeviceListener
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, async_load_json_object_fixture
|
from tests.common import MockConfigEntry, async_load_json_object_fixture
|
||||||
|
|
||||||
@@ -138,8 +138,25 @@ def mock_device_code() -> str:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
async def mock_devices(hass: HomeAssistant) -> list[CustomerDevice]:
|
||||||
|
"""Load all Tuya CustomerDevice fixtures.
|
||||||
|
|
||||||
|
Use this to generate global snapshots for each platform.
|
||||||
|
"""
|
||||||
|
return [await _create_device(hass, key) for key in DEVICE_MOCKS]
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
async def mock_device(hass: HomeAssistant, mock_device_code: str) -> CustomerDevice:
|
async def mock_device(hass: HomeAssistant, mock_device_code: str) -> CustomerDevice:
|
||||||
|
"""Load a single Tuya CustomerDevice fixture.
|
||||||
|
|
||||||
|
Use this for testing behavior on a specific device.
|
||||||
|
"""
|
||||||
|
return await _create_device(hass, mock_device_code)
|
||||||
|
|
||||||
|
|
||||||
|
async def _create_device(hass: HomeAssistant, mock_device_code: str) -> CustomerDevice:
|
||||||
"""Mock a Tuya CustomerDevice."""
|
"""Mock a Tuya CustomerDevice."""
|
||||||
details = await async_load_json_object_fixture(
|
details = await async_load_json_object_fixture(
|
||||||
hass, f"{mock_device_code}.json", DOMAIN
|
hass, f"{mock_device_code}.json", DOMAIN
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[mal_gyitctrjj1kefxp2][alarm_control_panel.multifunction_alarm-entry]
|
# name: test_platform_setup_and_discovery[alarm_control_panel.multifunction_alarm-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[mal_gyitctrjj1kefxp2][alarm_control_panel.multifunction_alarm-state]
|
# name: test_platform_setup_and_discovery[alarm_control_panel.multifunction_alarm-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'changed_by': None,
|
'changed_by': None,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[co2bj_yrr3eiyiacm31ski][binary_sensor.aqi_safety-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.aqi_safety-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[co2bj_yrr3eiyiacm31ski][binary_sensor.aqi_safety-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.aqi_safety-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'safety',
|
'device_class': 'safety',
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][binary_sensor.dehumidifer_defrost-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifer_defrost-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][binary_sensor.dehumidifer_defrost-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifer_defrost-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'problem',
|
'device_class': 'problem',
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
'state': 'unavailable',
|
'state': 'unavailable',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][binary_sensor.dehumidifer_tank_full-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifer_tank_full-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][binary_sensor.dehumidifer_tank_full-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifer_tank_full-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'problem',
|
'device_class': 'problem',
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
'state': 'unavailable',
|
'state': 'unavailable',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][binary_sensor.dehumidifier_defrost-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifier_defrost-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -181,7 +181,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][binary_sensor.dehumidifier_defrost-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifier_defrost-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'problem',
|
'device_class': 'problem',
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][binary_sensor.dehumidifier_tank_full-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifier_tank_full-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][binary_sensor.dehumidifier_tank_full-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifier_tank_full-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'problem',
|
'device_class': 'problem',
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][binary_sensor.dehumidifier_wet-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifier_wet-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -279,7 +279,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][binary_sensor.dehumidifier_wet-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.dehumidifier_wet-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'problem',
|
'device_class': 'problem',
|
||||||
@@ -293,56 +293,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[hps_2aaelwxk][binary_sensor.human_presence_office_occupancy-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.door_garage_door-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'binary_sensor',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'binary_sensor.human_presence_office_occupancy',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <BinarySensorDeviceClass.OCCUPANCY: 'occupancy'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Occupancy',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.kxwleaa2sphpresence_state',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[hps_2aaelwxk][binary_sensor.human_presence_office_occupancy-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'occupancy',
|
|
||||||
'friendly_name': 'Human presence Office Occupancy',
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'binary_sensor.human_presence_office_occupancy',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'off',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[mcs_7jIGJAymiH8OsFFb][binary_sensor.door_garage_door-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -377,7 +328,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[mcs_7jIGJAymiH8OsFFb][binary_sensor.door_garage_door-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.door_garage_door-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'door',
|
'device_class': 'door',
|
||||||
@@ -391,252 +342,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[pir_3amxzozho9xp4mkh][binary_sensor.rat_trap_hedge_motion-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.gas_sensor_gas-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'binary_sensor',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'binary_sensor.rat_trap_hedge_motion',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Motion',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.hkm4px9ohzozxma3rippir',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_3amxzozho9xp4mkh][binary_sensor.rat_trap_hedge_motion-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'motion',
|
|
||||||
'friendly_name': 'rat trap hedge Motion',
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'binary_sensor.rat_trap_hedge_motion',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'on',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_3amxzozho9xp4mkh][binary_sensor.rat_trap_hedge_tamper-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'binary_sensor',
|
|
||||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
|
||||||
'entity_id': 'binary_sensor.rat_trap_hedge_tamper',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <BinarySensorDeviceClass.TAMPER: 'tamper'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Tamper',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.hkm4px9ohzozxma3riptemper_alarm',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_3amxzozho9xp4mkh][binary_sensor.rat_trap_hedge_tamper-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'tamper',
|
|
||||||
'friendly_name': 'rat trap hedge Tamper',
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'binary_sensor.rat_trap_hedge_tamper',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'off',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_fcdjzz3s][binary_sensor.motion_sensor_lidl_zigbee_motion-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'binary_sensor',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_motion',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Motion',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.s3zzjdcfrippir',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_fcdjzz3s][binary_sensor.motion_sensor_lidl_zigbee_motion-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'motion',
|
|
||||||
'friendly_name': 'Motion sensor lidl zigbee Motion',
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_motion',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'unavailable',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_fcdjzz3s][binary_sensor.motion_sensor_lidl_zigbee_tamper-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'binary_sensor',
|
|
||||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
|
||||||
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_tamper',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <BinarySensorDeviceClass.TAMPER: 'tamper'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Tamper',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.s3zzjdcfriptemper_alarm',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_fcdjzz3s][binary_sensor.motion_sensor_lidl_zigbee_tamper-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'tamper',
|
|
||||||
'friendly_name': 'Motion sensor lidl zigbee Tamper',
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_tamper',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'unavailable',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_wqz93nrdomectyoz][binary_sensor.pir_outside_stairs_motion-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'binary_sensor',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'binary_sensor.pir_outside_stairs_motion',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Motion',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.zoytcemodrn39zqwrippir',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[pir_wqz93nrdomectyoz][binary_sensor.pir_outside_stairs_motion-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'motion',
|
|
||||||
'friendly_name': 'PIR outside stairs Motion',
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'binary_sensor.pir_outside_stairs_motion',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'on',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[rqbj_4iqe2hsfyd86kwwc][binary_sensor.gas_sensor_gas-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -671,7 +377,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[rqbj_4iqe2hsfyd86kwwc][binary_sensor.gas_sensor_gas-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.gas_sensor_gas-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'gas',
|
'device_class': 'gas',
|
||||||
@@ -685,7 +391,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sj_tgvtvdoc][binary_sensor.tournesol_moisture-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.human_presence_office_occupancy-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -698,7 +404,7 @@
|
|||||||
'disabled_by': None,
|
'disabled_by': None,
|
||||||
'domain': 'binary_sensor',
|
'domain': 'binary_sensor',
|
||||||
'entity_category': None,
|
'entity_category': None,
|
||||||
'entity_id': 'binary_sensor.tournesol_moisture',
|
'entity_id': 'binary_sensor.human_presence_office_occupancy',
|
||||||
'has_entity_name': True,
|
'has_entity_name': True,
|
||||||
'hidden_by': None,
|
'hidden_by': None,
|
||||||
'icon': None,
|
'icon': None,
|
||||||
@@ -708,33 +414,82 @@
|
|||||||
'name': None,
|
'name': None,
|
||||||
'options': dict({
|
'options': dict({
|
||||||
}),
|
}),
|
||||||
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
|
'original_device_class': <BinarySensorDeviceClass.OCCUPANCY: 'occupancy'>,
|
||||||
'original_icon': None,
|
'original_icon': None,
|
||||||
'original_name': 'Moisture',
|
'original_name': 'Occupancy',
|
||||||
'platform': 'tuya',
|
'platform': 'tuya',
|
||||||
'previous_unique_id': None,
|
'previous_unique_id': None,
|
||||||
'suggested_object_id': None,
|
'suggested_object_id': None,
|
||||||
'supported_features': 0,
|
'supported_features': 0,
|
||||||
'translation_key': None,
|
'translation_key': None,
|
||||||
'unique_id': 'tuya.codvtvgtjswatersensor_state',
|
'unique_id': 'tuya.kxwleaa2sphpresence_state',
|
||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sj_tgvtvdoc][binary_sensor.tournesol_moisture-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.human_presence_office_occupancy-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'moisture',
|
'device_class': 'occupancy',
|
||||||
'friendly_name': 'Tournesol Moisture',
|
'friendly_name': 'Human presence Office Occupancy',
|
||||||
}),
|
}),
|
||||||
'context': <ANY>,
|
'context': <ANY>,
|
||||||
'entity_id': 'binary_sensor.tournesol_moisture',
|
'entity_id': 'binary_sensor.human_presence_office_occupancy',
|
||||||
'last_changed': <ANY>,
|
'last_changed': <ANY>,
|
||||||
'last_reported': <ANY>,
|
'last_reported': <ANY>,
|
||||||
'last_updated': <ANY>,
|
'last_updated': <ANY>,
|
||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wg2_nwxr8qcu4seltoro][binary_sensor.x5_zigbee_gateway_problem-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.motion_sensor_lidl_zigbee_motion-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'binary_sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_motion',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Motion',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.s3zzjdcfrippir',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.motion_sensor_lidl_zigbee_motion-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'motion',
|
||||||
|
'friendly_name': 'Motion sensor lidl zigbee Motion',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_motion',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unavailable',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.motion_sensor_lidl_zigbee_tamper-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -747,7 +502,7 @@
|
|||||||
'disabled_by': None,
|
'disabled_by': None,
|
||||||
'domain': 'binary_sensor',
|
'domain': 'binary_sensor',
|
||||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||||
'entity_id': 'binary_sensor.x5_zigbee_gateway_problem',
|
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_tamper',
|
||||||
'has_entity_name': True,
|
'has_entity_name': True,
|
||||||
'hidden_by': None,
|
'hidden_by': None,
|
||||||
'icon': None,
|
'icon': None,
|
||||||
@@ -757,33 +512,180 @@
|
|||||||
'name': None,
|
'name': None,
|
||||||
'options': dict({
|
'options': dict({
|
||||||
}),
|
}),
|
||||||
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
|
'original_device_class': <BinarySensorDeviceClass.TAMPER: 'tamper'>,
|
||||||
'original_icon': None,
|
'original_icon': None,
|
||||||
'original_name': 'Problem',
|
'original_name': 'Tamper',
|
||||||
'platform': 'tuya',
|
'platform': 'tuya',
|
||||||
'previous_unique_id': None,
|
'previous_unique_id': None,
|
||||||
'suggested_object_id': None,
|
'suggested_object_id': None,
|
||||||
'supported_features': 0,
|
'supported_features': 0,
|
||||||
'translation_key': None,
|
'translation_key': None,
|
||||||
'unique_id': 'tuya.orotles4ucq8rxwn2gwmaster_state',
|
'unique_id': 'tuya.s3zzjdcfriptemper_alarm',
|
||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wg2_nwxr8qcu4seltoro][binary_sensor.x5_zigbee_gateway_problem-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.motion_sensor_lidl_zigbee_tamper-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'problem',
|
'device_class': 'tamper',
|
||||||
'friendly_name': 'X5 Zigbee Gateway Problem',
|
'friendly_name': 'Motion sensor lidl zigbee Tamper',
|
||||||
}),
|
}),
|
||||||
'context': <ANY>,
|
'context': <ANY>,
|
||||||
'entity_id': 'binary_sensor.x5_zigbee_gateway_problem',
|
'entity_id': 'binary_sensor.motion_sensor_lidl_zigbee_tamper',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unavailable',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.pir_outside_stairs_motion-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'binary_sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'binary_sensor.pir_outside_stairs_motion',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Motion',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.zoytcemodrn39zqwrippir',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.pir_outside_stairs_motion-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'motion',
|
||||||
|
'friendly_name': 'PIR outside stairs Motion',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'binary_sensor.pir_outside_stairs_motion',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'on',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.rat_trap_hedge_motion-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'binary_sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'binary_sensor.rat_trap_hedge_motion',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Motion',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.hkm4px9ohzozxma3rippir',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.rat_trap_hedge_motion-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'motion',
|
||||||
|
'friendly_name': 'rat trap hedge Motion',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'binary_sensor.rat_trap_hedge_motion',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'on',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.rat_trap_hedge_tamper-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'binary_sensor',
|
||||||
|
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||||
|
'entity_id': 'binary_sensor.rat_trap_hedge_tamper',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <BinarySensorDeviceClass.TAMPER: 'tamper'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Tamper',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.hkm4px9ohzozxma3riptemper_alarm',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.rat_trap_hedge_tamper-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'tamper',
|
||||||
|
'friendly_name': 'rat trap hedge Tamper',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'binary_sensor.rat_trap_hedge_tamper',
|
||||||
'last_changed': <ANY>,
|
'last_changed': <ANY>,
|
||||||
'last_reported': <ANY>,
|
'last_reported': <ANY>,
|
||||||
'last_updated': <ANY>,
|
'last_updated': <ANY>,
|
||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[ywbj_gf9dejhmzffgdyfj][binary_sensor.smoke_detector_upstairs_smoke-entry]
|
# name: test_platform_setup_and_discovery[binary_sensor.smoke_detector_upstairs_smoke-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -818,7 +720,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[ywbj_gf9dejhmzffgdyfj][binary_sensor.smoke_detector_upstairs_smoke-state]
|
# name: test_platform_setup_and_discovery[binary_sensor.smoke_detector_upstairs_smoke-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'smoke',
|
'device_class': 'smoke',
|
||||||
@@ -832,3 +734,101 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.tournesol_moisture-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'binary_sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'binary_sensor.tournesol_moisture',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Moisture',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.codvtvgtjswatersensor_state',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.tournesol_moisture-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'moisture',
|
||||||
|
'friendly_name': 'Tournesol Moisture',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'binary_sensor.tournesol_moisture',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'off',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.x5_zigbee_gateway_problem-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'binary_sensor',
|
||||||
|
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||||
|
'entity_id': 'binary_sensor.x5_zigbee_gateway_problem',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Problem',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.orotles4ucq8rxwn2gwmaster_state',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[binary_sensor.x5_zigbee_gateway_problem-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'problem',
|
||||||
|
'friendly_name': 'X5 Zigbee Gateway Problem',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'binary_sensor.x5_zigbee_gateway_problem',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'off',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_duster_cloth-entry]
|
# name: test_platform_setup_and_discovery[button.v20_reset_duster_cloth-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_duster_cloth-state]
|
# name: test_platform_setup_and_discovery[button.v20_reset_duster_cloth-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'V20 Reset duster cloth',
|
'friendly_name': 'V20 Reset duster cloth',
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_edge_brush-entry]
|
# name: test_platform_setup_and_discovery[button.v20_reset_edge_brush-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_edge_brush-state]
|
# name: test_platform_setup_and_discovery[button.v20_reset_edge_brush-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'V20 Reset edge brush',
|
'friendly_name': 'V20 Reset edge brush',
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_filter-entry]
|
# name: test_platform_setup_and_discovery[button.v20_reset_filter-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_filter-state]
|
# name: test_platform_setup_and_discovery[button.v20_reset_filter-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'V20 Reset filter',
|
'friendly_name': 'V20 Reset filter',
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_map-entry]
|
# name: test_platform_setup_and_discovery[button.v20_reset_map-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_map-state]
|
# name: test_platform_setup_and_discovery[button.v20_reset_map-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'V20 Reset map',
|
'friendly_name': 'V20 Reset map',
|
||||||
@@ -191,7 +191,7 @@
|
|||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_roll_brush-entry]
|
# name: test_platform_setup_and_discovery[button.v20_reset_roll_brush-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -226,7 +226,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][button.v20_reset_roll_brush-state]
|
# name: test_platform_setup_and_discovery[button.v20_reset_roll_brush-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'V20 Reset roll brush',
|
'friendly_name': 'V20 Reset roll brush',
|
||||||
|
@@ -1,112 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[sp_drezasavompxpcgm][camera.cam_garage-entry]
|
# name: test_platform_setup_and_discovery[camera.c9-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'camera',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'camera.cam_garage',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <CameraEntityFeature: 2>,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.mgcpxpmovasazerdps',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[sp_drezasavompxpcgm][camera.cam_garage-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'access_token': '1',
|
|
||||||
'brand': 'Tuya',
|
|
||||||
'entity_picture': '/api/camera_proxy/camera.cam_garage?token=1',
|
|
||||||
'friendly_name': 'CAM GARAGE',
|
|
||||||
'model_name': 'Indoor camera ',
|
|
||||||
'motion_detection': True,
|
|
||||||
'supported_features': <CameraEntityFeature: 2>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'camera.cam_garage',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'idle',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[sp_rjKXWRohlvOTyLBu][camera.cam_porch-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'camera',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'camera.cam_porch',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <CameraEntityFeature: 2>,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.uBLyTOvlhoRWXKjrps',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[sp_rjKXWRohlvOTyLBu][camera.cam_porch-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'access_token': '1',
|
|
||||||
'brand': 'Tuya',
|
|
||||||
'entity_picture': '/api/camera_proxy/camera.cam_porch?token=1',
|
|
||||||
'friendly_name': 'CAM PORCH',
|
|
||||||
'model_name': 'Indoor cam Pan/Tilt ',
|
|
||||||
'supported_features': <CameraEntityFeature: 2>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'camera.cam_porch',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'idle',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[sp_sdd5f5f2dl5wydjf][camera.c9-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -141,7 +34,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sp_sdd5f5f2dl5wydjf][camera.c9-state]
|
# name: test_platform_setup_and_discovery[camera.c9-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'access_token': '1',
|
'access_token': '1',
|
||||||
@@ -160,3 +53,110 @@
|
|||||||
'state': 'recording',
|
'state': 'recording',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[camera.cam_garage-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'camera',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'camera.cam_garage',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <CameraEntityFeature: 2>,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.mgcpxpmovasazerdps',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[camera.cam_garage-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'access_token': '1',
|
||||||
|
'brand': 'Tuya',
|
||||||
|
'entity_picture': '/api/camera_proxy/camera.cam_garage?token=1',
|
||||||
|
'friendly_name': 'CAM GARAGE',
|
||||||
|
'model_name': 'Indoor camera ',
|
||||||
|
'motion_detection': True,
|
||||||
|
'supported_features': <CameraEntityFeature: 2>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'camera.cam_garage',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'idle',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[camera.cam_porch-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'camera',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'camera.cam_porch',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <CameraEntityFeature: 2>,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.uBLyTOvlhoRWXKjrps',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[camera.cam_porch-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'access_token': '1',
|
||||||
|
'brand': 'Tuya',
|
||||||
|
'entity_picture': '/api/camera_proxy/camera.cam_porch?token=1',
|
||||||
|
'friendly_name': 'CAM PORCH',
|
||||||
|
'model_name': 'Indoor cam Pan/Tilt ',
|
||||||
|
'supported_features': <CameraEntityFeature: 2>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'camera.cam_porch',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'idle',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[kt_5wnlzekkstwcdsvm][climate.air_conditioner-entry]
|
# name: test_platform_setup_and_discovery[climate.air_conditioner-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[kt_5wnlzekkstwcdsvm][climate.air_conditioner-state]
|
# name: test_platform_setup_and_discovery[climate.air_conditioner-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_temperature': 22.0,
|
'current_temperature': 22.0,
|
||||||
@@ -74,82 +74,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_6kijc7nd][climate.kabinet-entry]
|
# name: test_platform_setup_and_discovery[climate.clima_cucina-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': dict({
|
|
||||||
'hvac_modes': list([
|
|
||||||
<HVACMode.OFF: 'off'>,
|
|
||||||
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
|
||||||
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
|
||||||
]),
|
|
||||||
'max_temp': 95.0,
|
|
||||||
'min_temp': 5.0,
|
|
||||||
'preset_modes': list([
|
|
||||||
'program',
|
|
||||||
]),
|
|
||||||
'target_temp_step': 0.5,
|
|
||||||
}),
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'climate',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'climate.kabinet',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <ClimateEntityFeature: 401>,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.dn7cjik6kw',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[wk_6kijc7nd][climate.kabinet-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'current_temperature': 19.5,
|
|
||||||
'friendly_name': 'Кабінет',
|
|
||||||
'hvac_modes': list([
|
|
||||||
<HVACMode.OFF: 'off'>,
|
|
||||||
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
|
||||||
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
|
||||||
]),
|
|
||||||
'max_temp': 95.0,
|
|
||||||
'min_temp': 5.0,
|
|
||||||
'preset_mode': None,
|
|
||||||
'preset_modes': list([
|
|
||||||
'program',
|
|
||||||
]),
|
|
||||||
'supported_features': <ClimateEntityFeature: 401>,
|
|
||||||
'target_temp_step': 0.5,
|
|
||||||
'temperature': 21.5,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'climate.kabinet',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'heat_cool',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[wk_aqoouq7x][climate.clima_cucina-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -199,7 +124,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_aqoouq7x][climate.clima_cucina-state]
|
# name: test_platform_setup_and_discovery[climate.clima_cucina-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_temperature': 27.0,
|
'current_temperature': 27.0,
|
||||||
@@ -230,7 +155,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_fi6dne5tu4t1nm6j][climate.wifi_smart_gas_boiler_thermostat-entry]
|
# name: test_platform_setup_and_discovery[climate.kabinet-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -239,9 +164,13 @@
|
|||||||
'hvac_modes': list([
|
'hvac_modes': list([
|
||||||
<HVACMode.OFF: 'off'>,
|
<HVACMode.OFF: 'off'>,
|
||||||
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
||||||
|
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
||||||
]),
|
]),
|
||||||
'max_temp': 35.0,
|
'max_temp': 95.0,
|
||||||
'min_temp': 5.0,
|
'min_temp': 5.0,
|
||||||
|
'preset_modes': list([
|
||||||
|
'program',
|
||||||
|
]),
|
||||||
'target_temp_step': 0.5,
|
'target_temp_step': 0.5,
|
||||||
}),
|
}),
|
||||||
'config_entry_id': <ANY>,
|
'config_entry_id': <ANY>,
|
||||||
@@ -251,7 +180,7 @@
|
|||||||
'disabled_by': None,
|
'disabled_by': None,
|
||||||
'domain': 'climate',
|
'domain': 'climate',
|
||||||
'entity_category': None,
|
'entity_category': None,
|
||||||
'entity_id': 'climate.wifi_smart_gas_boiler_thermostat',
|
'entity_id': 'climate.kabinet',
|
||||||
'has_entity_name': True,
|
'has_entity_name': True,
|
||||||
'hidden_by': None,
|
'hidden_by': None,
|
||||||
'icon': None,
|
'icon': None,
|
||||||
@@ -267,36 +196,41 @@
|
|||||||
'platform': 'tuya',
|
'platform': 'tuya',
|
||||||
'previous_unique_id': None,
|
'previous_unique_id': None,
|
||||||
'suggested_object_id': None,
|
'suggested_object_id': None,
|
||||||
'supported_features': <ClimateEntityFeature: 385>,
|
'supported_features': <ClimateEntityFeature: 401>,
|
||||||
'translation_key': None,
|
'translation_key': None,
|
||||||
'unique_id': 'tuya.j6mn1t4ut5end6ifkw',
|
'unique_id': 'tuya.dn7cjik6kw',
|
||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_fi6dne5tu4t1nm6j][climate.wifi_smart_gas_boiler_thermostat-state]
|
# name: test_platform_setup_and_discovery[climate.kabinet-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_temperature': 24.9,
|
'current_temperature': 19.5,
|
||||||
'friendly_name': 'WiFi Smart Gas Boiler Thermostat ',
|
'friendly_name': 'Кабінет',
|
||||||
'hvac_modes': list([
|
'hvac_modes': list([
|
||||||
<HVACMode.OFF: 'off'>,
|
<HVACMode.OFF: 'off'>,
|
||||||
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
||||||
|
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
||||||
]),
|
]),
|
||||||
'max_temp': 35.0,
|
'max_temp': 95.0,
|
||||||
'min_temp': 5.0,
|
'min_temp': 5.0,
|
||||||
'supported_features': <ClimateEntityFeature: 385>,
|
'preset_mode': None,
|
||||||
|
'preset_modes': list([
|
||||||
|
'program',
|
||||||
|
]),
|
||||||
|
'supported_features': <ClimateEntityFeature: 401>,
|
||||||
'target_temp_step': 0.5,
|
'target_temp_step': 0.5,
|
||||||
'temperature': 22.0,
|
'temperature': 21.5,
|
||||||
}),
|
}),
|
||||||
'context': <ANY>,
|
'context': <ANY>,
|
||||||
'entity_id': 'climate.wifi_smart_gas_boiler_thermostat',
|
'entity_id': 'climate.kabinet',
|
||||||
'last_changed': <ANY>,
|
'last_changed': <ANY>,
|
||||||
'last_reported': <ANY>,
|
'last_reported': <ANY>,
|
||||||
'last_updated': <ANY>,
|
'last_updated': <ANY>,
|
||||||
'state': 'heat_cool',
|
'state': 'heat_cool',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_gogb05wrtredz3bs][climate.smart_thermostats-entry]
|
# name: test_platform_setup_and_discovery[climate.smart_thermostats-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -340,7 +274,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_gogb05wrtredz3bs][climate.smart_thermostats-state]
|
# name: test_platform_setup_and_discovery[climate.smart_thermostats-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_temperature': 21.5,
|
'current_temperature': 21.5,
|
||||||
@@ -364,7 +298,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_y5obtqhuztqsf2mj][climate.term_prizemi-entry]
|
# name: test_platform_setup_and_discovery[climate.term_prizemi-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -407,7 +341,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wk_y5obtqhuztqsf2mj][climate.term_prizemi-state]
|
# name: test_platform_setup_and_discovery[climate.term_prizemi-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_temperature': 23.0,
|
'current_temperature': 23.0,
|
||||||
@@ -430,3 +364,69 @@
|
|||||||
'state': 'heat_cool',
|
'state': 'heat_cool',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[climate.wifi_smart_gas_boiler_thermostat-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'hvac_modes': list([
|
||||||
|
<HVACMode.OFF: 'off'>,
|
||||||
|
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
||||||
|
]),
|
||||||
|
'max_temp': 35.0,
|
||||||
|
'min_temp': 5.0,
|
||||||
|
'target_temp_step': 0.5,
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'climate',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'climate.wifi_smart_gas_boiler_thermostat',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <ClimateEntityFeature: 385>,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.j6mn1t4ut5end6ifkw',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[climate.wifi_smart_gas_boiler_thermostat-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'current_temperature': 24.9,
|
||||||
|
'friendly_name': 'WiFi Smart Gas Boiler Thermostat ',
|
||||||
|
'hvac_modes': list([
|
||||||
|
<HVACMode.OFF: 'off'>,
|
||||||
|
<HVACMode.HEAT_COOL: 'heat_cool'>,
|
||||||
|
]),
|
||||||
|
'max_temp': 35.0,
|
||||||
|
'min_temp': 5.0,
|
||||||
|
'supported_features': <ClimateEntityFeature: 385>,
|
||||||
|
'target_temp_step': 0.5,
|
||||||
|
'temperature': 22.0,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'climate.wifi_smart_gas_boiler_thermostat',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'heat_cool',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
@@ -1,158 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[cl_3r8gc33pnqsxfe1g][cover.lounge_dark_blind_curtain-entry]
|
# name: test_platform_setup_and_discovery[cover.bedroom_blinds_curtain-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'cover',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'cover.lounge_dark_blind_curtain',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <CoverDeviceClass.CURTAIN: 'curtain'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Curtain',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <CoverEntityFeature: 15>,
|
|
||||||
'translation_key': 'curtain',
|
|
||||||
'unique_id': 'tuya.g1efxsqnp33cg8r3lccontrol',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cl_3r8gc33pnqsxfe1g][cover.lounge_dark_blind_curtain-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'current_position': 100,
|
|
||||||
'device_class': 'curtain',
|
|
||||||
'friendly_name': 'Lounge Dark Blind Curtain',
|
|
||||||
'supported_features': <CoverEntityFeature: 15>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'cover.lounge_dark_blind_curtain',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'open',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cl_cpbo62rn][cover.blinds_curtain-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'cover',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'cover.blinds_curtain',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <CoverDeviceClass.CURTAIN: 'curtain'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Curtain',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <CoverEntityFeature: 15>,
|
|
||||||
'translation_key': 'curtain',
|
|
||||||
'unique_id': 'tuya.nr26obpclccontrol',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cl_cpbo62rn][cover.blinds_curtain-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'current_position': 36,
|
|
||||||
'device_class': 'curtain',
|
|
||||||
'friendly_name': 'blinds Curtain',
|
|
||||||
'supported_features': <CoverEntityFeature: 15>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'cover.blinds_curtain',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'open',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cl_ebt12ypvexnixvtf][cover.kitchen_blinds_blind-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'cover',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'cover.kitchen_blinds_blind',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <CoverDeviceClass.BLIND: 'blind'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': 'Blind',
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <CoverEntityFeature: 15>,
|
|
||||||
'translation_key': 'blind',
|
|
||||||
'unique_id': 'tuya.ftvxinxevpy21tbelcswitch_1',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cl_ebt12ypvexnixvtf][cover.kitchen_blinds_blind-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'current_position': 100,
|
|
||||||
'device_class': 'blind',
|
|
||||||
'friendly_name': 'Kitchen Blinds Blind',
|
|
||||||
'supported_features': <CoverEntityFeature: 15>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'cover.kitchen_blinds_blind',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'open',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cl_qqdxfdht][cover.bedroom_blinds_curtain-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -187,7 +34,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cl_qqdxfdht][cover.bedroom_blinds_curtain-state]
|
# name: test_platform_setup_and_discovery[cover.bedroom_blinds_curtain-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_position': 0,
|
'current_position': 0,
|
||||||
@@ -203,7 +50,109 @@
|
|||||||
'state': 'closed',
|
'state': 'closed',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cl_zah67ekd][cover.kitchen_blinds_curtain-entry]
|
# name: test_platform_setup_and_discovery[cover.blinds_curtain-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'cover',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'cover.blinds_curtain',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <CoverDeviceClass.CURTAIN: 'curtain'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Curtain',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <CoverEntityFeature: 15>,
|
||||||
|
'translation_key': 'curtain',
|
||||||
|
'unique_id': 'tuya.nr26obpclccontrol',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[cover.blinds_curtain-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'current_position': 36,
|
||||||
|
'device_class': 'curtain',
|
||||||
|
'friendly_name': 'blinds Curtain',
|
||||||
|
'supported_features': <CoverEntityFeature: 15>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'cover.blinds_curtain',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'open',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[cover.kitchen_blinds_blind-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'cover',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'cover.kitchen_blinds_blind',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <CoverDeviceClass.BLIND: 'blind'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Blind',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <CoverEntityFeature: 15>,
|
||||||
|
'translation_key': 'blind',
|
||||||
|
'unique_id': 'tuya.ftvxinxevpy21tbelcswitch_1',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[cover.kitchen_blinds_blind-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'current_position': 100,
|
||||||
|
'device_class': 'blind',
|
||||||
|
'friendly_name': 'Kitchen Blinds Blind',
|
||||||
|
'supported_features': <CoverEntityFeature: 15>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'cover.kitchen_blinds_blind',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'open',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[cover.kitchen_blinds_curtain-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -238,7 +187,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cl_zah67ekd][cover.kitchen_blinds_curtain-state]
|
# name: test_platform_setup_and_discovery[cover.kitchen_blinds_curtain-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_position': 48,
|
'current_position': 48,
|
||||||
@@ -254,7 +203,58 @@
|
|||||||
'state': 'open',
|
'state': 'open',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[clkg_nhyj64w2][cover.tapparelle_studio_curtain-entry]
|
# name: test_platform_setup_and_discovery[cover.lounge_dark_blind_curtain-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'cover',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'cover.lounge_dark_blind_curtain',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <CoverDeviceClass.CURTAIN: 'curtain'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Curtain',
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <CoverEntityFeature: 15>,
|
||||||
|
'translation_key': 'curtain',
|
||||||
|
'unique_id': 'tuya.g1efxsqnp33cg8r3lccontrol',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[cover.lounge_dark_blind_curtain-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'current_position': 100,
|
||||||
|
'device_class': 'curtain',
|
||||||
|
'friendly_name': 'Lounge Dark Blind Curtain',
|
||||||
|
'supported_features': <CoverEntityFeature: 15>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'cover.lounge_dark_blind_curtain',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'open',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[cover.tapparelle_studio_curtain-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[clkg_nhyj64w2][cover.tapparelle_studio_curtain-state]
|
# name: test_platform_setup_and_discovery[cover.tapparelle_studio_curtain-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_position': 0,
|
'current_position': 0,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[wxkg_l8yaz4um5b3pwyvf][event.bathroom_smart_switch_button_1-entry]
|
# name: test_platform_setup_and_discovery[event.bathroom_smart_switch_button_1-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wxkg_l8yaz4um5b3pwyvf][event.bathroom_smart_switch_button_1-state]
|
# name: test_platform_setup_and_discovery[event.bathroom_smart_switch_button_1-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'button',
|
'device_class': 'button',
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wxkg_l8yaz4um5b3pwyvf][event.bathroom_smart_switch_button_2-entry]
|
# name: test_platform_setup_and_discovery[event.bathroom_smart_switch_button_2-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[wxkg_l8yaz4um5b3pwyvf][event.bathroom_smart_switch_button_2-state]
|
# name: test_platform_setup_and_discovery[event.bathroom_smart_switch_button_2-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'button',
|
'device_class': 'button',
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][fan.dehumidifer-entry]
|
# name: test_platform_setup_and_discovery[fan.bree-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
'area_id': None,
|
'area_id': None,
|
||||||
'capabilities': dict({
|
'capabilities': dict({
|
||||||
'preset_modes': list([
|
'preset_modes': list([
|
||||||
|
'sleep',
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
'config_entry_id': <ANY>,
|
'config_entry_id': <ANY>,
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
'disabled_by': None,
|
'disabled_by': None,
|
||||||
'domain': 'fan',
|
'domain': 'fan',
|
||||||
'entity_category': None,
|
'entity_category': None,
|
||||||
'entity_id': 'fan.dehumidifer',
|
'entity_id': 'fan.bree',
|
||||||
'has_entity_name': True,
|
'has_entity_name': True,
|
||||||
'hidden_by': None,
|
'hidden_by': None,
|
||||||
'icon': None,
|
'icon': None,
|
||||||
@@ -31,179 +32,31 @@
|
|||||||
'platform': 'tuya',
|
'platform': 'tuya',
|
||||||
'previous_unique_id': None,
|
'previous_unique_id': None,
|
||||||
'suggested_object_id': None,
|
'suggested_object_id': None,
|
||||||
'supported_features': <FanEntityFeature: 49>,
|
'supported_features': <FanEntityFeature: 56>,
|
||||||
'translation_key': None,
|
'translation_key': None,
|
||||||
'unique_id': 'tuya.ifzgvpgoodrfw2aksc',
|
'unique_id': 'tuya.ppgdpsq1xaxlyzryjk',
|
||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][fan.dehumidifer-state]
|
# name: test_platform_setup_and_discovery[fan.bree-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'Dehumidifer',
|
'friendly_name': 'Bree',
|
||||||
|
'preset_mode': 'normal',
|
||||||
'preset_modes': list([
|
'preset_modes': list([
|
||||||
|
'sleep',
|
||||||
]),
|
]),
|
||||||
'supported_features': <FanEntityFeature: 49>,
|
'supported_features': <FanEntityFeature: 56>,
|
||||||
}),
|
}),
|
||||||
'context': <ANY>,
|
'context': <ANY>,
|
||||||
'entity_id': 'fan.dehumidifer',
|
'entity_id': 'fan.bree',
|
||||||
'last_changed': <ANY>,
|
'last_changed': <ANY>,
|
||||||
'last_reported': <ANY>,
|
'last_reported': <ANY>,
|
||||||
'last_updated': <ANY>,
|
'last_updated': <ANY>,
|
||||||
'state': 'unavailable',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_qhxmvae667uap4zh][fan.dryfix-entry]
|
# name: test_platform_setup_and_discovery[fan.ceiling_fan_with_light-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': dict({
|
|
||||||
}),
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'fan',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'fan.dryfix',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.hz4pau766eavmxhqsc',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_qhxmvae667uap4zh][fan.dryfix-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'friendly_name': 'DryFix',
|
|
||||||
'supported_features': <FanEntityFeature: 0>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'fan.dryfix',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'unavailable',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_vmxuxszzjwp5smli][fan.dehumidifier-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': dict({
|
|
||||||
}),
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'fan',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'fan.dehumidifier',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.ilms5pwjzzsxuxmvsc',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_vmxuxszzjwp5smli][fan.dehumidifier-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'friendly_name': 'Dehumidifier ',
|
|
||||||
'supported_features': <FanEntityFeature: 0>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'fan.dehumidifier',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'unknown',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][fan.dehumidifier-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': dict({
|
|
||||||
}),
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'fan',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'fan.dehumidifier',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <FanEntityFeature: 48>,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.2myxayqtud9aqbizsc',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][fan.dehumidifier-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'friendly_name': 'Dehumidifier',
|
|
||||||
'supported_features': <FanEntityFeature: 48>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'fan.dehumidifier',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'on',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[fs_g0ewlb1vmwqljzji][fan.ceiling_fan_with_light-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -244,7 +97,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[fs_g0ewlb1vmwqljzji][fan.ceiling_fan_with_light-state]
|
# name: test_platform_setup_and_discovery[fan.ceiling_fan_with_light-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'direction': 'reverse',
|
'direction': 'reverse',
|
||||||
@@ -267,7 +120,61 @@
|
|||||||
'state': 'on',
|
'state': 'on',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[fs_ibytpo6fpnugft1c][fan.ventilador_cama-entry]
|
# name: test_platform_setup_and_discovery[fan.dehumidifer-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'preset_modes': list([
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'fan',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'fan.dehumidifer',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <FanEntityFeature: 49>,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.ifzgvpgoodrfw2aksc',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.dehumidifer-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'friendly_name': 'Dehumidifer',
|
||||||
|
'preset_modes': list([
|
||||||
|
]),
|
||||||
|
'supported_features': <FanEntityFeature: 49>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'fan.dehumidifer',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unavailable',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.dehumidifier-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -281,7 +188,7 @@
|
|||||||
'disabled_by': None,
|
'disabled_by': None,
|
||||||
'domain': 'fan',
|
'domain': 'fan',
|
||||||
'entity_category': None,
|
'entity_category': None,
|
||||||
'entity_id': 'fan.ventilador_cama',
|
'entity_id': 'fan.dehumidifier',
|
||||||
'has_entity_name': True,
|
'has_entity_name': True,
|
||||||
'hidden_by': None,
|
'hidden_by': None,
|
||||||
'icon': None,
|
'icon': None,
|
||||||
@@ -299,25 +206,125 @@
|
|||||||
'suggested_object_id': None,
|
'suggested_object_id': None,
|
||||||
'supported_features': 0,
|
'supported_features': 0,
|
||||||
'translation_key': None,
|
'translation_key': None,
|
||||||
'unique_id': 'tuya.c1tfgunpf6optybisf',
|
'unique_id': 'tuya.ilms5pwjzzsxuxmvsc',
|
||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[fs_ibytpo6fpnugft1c][fan.ventilador_cama-state]
|
# name: test_platform_setup_and_discovery[fan.dehumidifier-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'Ventilador Cama',
|
'friendly_name': 'Dehumidifier ',
|
||||||
'supported_features': <FanEntityFeature: 0>,
|
'supported_features': <FanEntityFeature: 0>,
|
||||||
}),
|
}),
|
||||||
'context': <ANY>,
|
'context': <ANY>,
|
||||||
'entity_id': 'fan.ventilador_cama',
|
'entity_id': 'fan.dehumidifier',
|
||||||
'last_changed': <ANY>,
|
'last_changed': <ANY>,
|
||||||
'last_reported': <ANY>,
|
'last_reported': <ANY>,
|
||||||
'last_updated': <ANY>,
|
'last_updated': <ANY>,
|
||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[kj_CAjWAxBUZt7QZHfz][fan.hl400-entry]
|
# name: test_platform_setup_and_discovery[fan.dehumidifier_2-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'fan',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'fan.dehumidifier_2',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <FanEntityFeature: 48>,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.2myxayqtud9aqbizsc',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.dehumidifier_2-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'friendly_name': 'Dehumidifier',
|
||||||
|
'supported_features': <FanEntityFeature: 48>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'fan.dehumidifier_2',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'on',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.dryfix-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'fan',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'fan.dryfix',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.hz4pau766eavmxhqsc',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.dryfix-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'friendly_name': 'DryFix',
|
||||||
|
'supported_features': <FanEntityFeature: 0>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'fan.dryfix',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unavailable',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.hl400-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -355,7 +362,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[kj_CAjWAxBUZt7QZHfz][fan.hl400-state]
|
# name: test_platform_setup_and_discovery[fan.hl400-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'HL400',
|
'friendly_name': 'HL400',
|
||||||
@@ -374,64 +381,7 @@
|
|||||||
'state': 'on',
|
'state': 'on',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[kj_yrzylxax1qspdgpp][fan.bree-entry]
|
# name: test_platform_setup_and_discovery[fan.tower_fan_ca_407g_smart-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': dict({
|
|
||||||
'preset_modes': list([
|
|
||||||
'sleep',
|
|
||||||
]),
|
|
||||||
}),
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'fan',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'fan.bree',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <FanEntityFeature: 56>,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.ppgdpsq1xaxlyzryjk',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[kj_yrzylxax1qspdgpp][fan.bree-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'friendly_name': 'Bree',
|
|
||||||
'preset_mode': 'normal',
|
|
||||||
'preset_modes': list([
|
|
||||||
'sleep',
|
|
||||||
]),
|
|
||||||
'supported_features': <FanEntityFeature: 56>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'fan.bree',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'off',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[ks_j9fa8ahzac8uvlfl][fan.tower_fan_ca_407g_smart-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -472,7 +422,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[ks_j9fa8ahzac8uvlfl][fan.tower_fan_ca_407g_smart-state]
|
# name: test_platform_setup_and_discovery[fan.tower_fan_ca_407g_smart-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'Tower Fan CA-407G Smart',
|
'friendly_name': 'Tower Fan CA-407G Smart',
|
||||||
@@ -495,3 +445,53 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.ventilador_cama-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'fan',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'fan.ventilador_cama',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.c1tfgunpf6optybisf',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[fan.ventilador_cama-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'friendly_name': 'Ventilador Cama',
|
||||||
|
'supported_features': <FanEntityFeature: 0>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'fan.ventilador_cama',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unknown',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][humidifier.dehumidifer-entry]
|
# name: test_platform_setup_and_discovery[humidifier.dehumidifer-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][humidifier.dehumidifer-state]
|
# name: test_platform_setup_and_discovery[humidifier.dehumidifer-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'dehumidifier',
|
'device_class': 'dehumidifier',
|
||||||
@@ -54,62 +54,7 @@
|
|||||||
'state': 'unavailable',
|
'state': 'unavailable',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_qhxmvae667uap4zh][humidifier.dryfix-entry]
|
# name: test_platform_setup_and_discovery[humidifier.dehumidifier-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': dict({
|
|
||||||
'max_humidity': 100,
|
|
||||||
'min_humidity': 0,
|
|
||||||
}),
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'humidifier',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'humidifier.dryfix',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': <HumidifierDeviceClass.DEHUMIDIFIER: 'dehumidifier'>,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': 0,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.hz4pau766eavmxhqscswitch',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_qhxmvae667uap4zh][humidifier.dryfix-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'device_class': 'dehumidifier',
|
|
||||||
'friendly_name': 'DryFix',
|
|
||||||
'max_humidity': 100,
|
|
||||||
'min_humidity': 0,
|
|
||||||
'supported_features': <HumidifierEntityFeature: 0>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'humidifier.dryfix',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'unavailable',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[cs_vmxuxszzjwp5smli][humidifier.dehumidifier-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -147,7 +92,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_vmxuxszzjwp5smli][humidifier.dehumidifier-state]
|
# name: test_platform_setup_and_discovery[humidifier.dehumidifier-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'device_class': 'dehumidifier',
|
'device_class': 'dehumidifier',
|
||||||
@@ -164,7 +109,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][humidifier.dehumidifier-entry]
|
# name: test_platform_setup_and_discovery[humidifier.dehumidifier_2-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -180,7 +125,7 @@
|
|||||||
'disabled_by': None,
|
'disabled_by': None,
|
||||||
'domain': 'humidifier',
|
'domain': 'humidifier',
|
||||||
'entity_category': None,
|
'entity_category': None,
|
||||||
'entity_id': 'humidifier.dehumidifier',
|
'entity_id': 'humidifier.dehumidifier_2',
|
||||||
'has_entity_name': True,
|
'has_entity_name': True,
|
||||||
'hidden_by': None,
|
'hidden_by': None,
|
||||||
'icon': None,
|
'icon': None,
|
||||||
@@ -202,7 +147,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][humidifier.dehumidifier-state]
|
# name: test_platform_setup_and_discovery[humidifier.dehumidifier_2-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'current_humidity': 47,
|
'current_humidity': 47,
|
||||||
@@ -214,10 +159,65 @@
|
|||||||
'supported_features': <HumidifierEntityFeature: 0>,
|
'supported_features': <HumidifierEntityFeature: 0>,
|
||||||
}),
|
}),
|
||||||
'context': <ANY>,
|
'context': <ANY>,
|
||||||
'entity_id': 'humidifier.dehumidifier',
|
'entity_id': 'humidifier.dehumidifier_2',
|
||||||
'last_changed': <ANY>,
|
'last_changed': <ANY>,
|
||||||
'last_reported': <ANY>,
|
'last_reported': <ANY>,
|
||||||
'last_updated': <ANY>,
|
'last_updated': <ANY>,
|
||||||
'state': 'on',
|
'state': 'on',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[humidifier.dryfix-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'max_humidity': 100,
|
||||||
|
'min_humidity': 0,
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'humidifier',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'humidifier.dryfix',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <HumidifierDeviceClass.DEHUMIDIFIER: 'dehumidifier'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.hz4pau766eavmxhqscswitch',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[humidifier.dryfix-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'dehumidifier',
|
||||||
|
'friendly_name': 'DryFix',
|
||||||
|
'max_humidity': 100,
|
||||||
|
'min_humidity': 0,
|
||||||
|
'supported_features': <HumidifierEntityFeature: 0>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'humidifier.dryfix',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unavailable',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[co2bj_yrr3eiyiacm31ski][siren.aqi-entry]
|
# name: test_platform_setup_and_discovery[siren.aqi-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[co2bj_yrr3eiyiacm31ski][siren.aqi-state]
|
# name: test_platform_setup_and_discovery[siren.aqi-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'AQI',
|
'friendly_name': 'AQI',
|
||||||
@@ -48,56 +48,7 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sgbj_ulv4nnue7gqp0rjk][siren.siren_veranda-entry]
|
# name: test_platform_setup_and_discovery[siren.c9-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
|
||||||
'aliases': set({
|
|
||||||
}),
|
|
||||||
'area_id': None,
|
|
||||||
'capabilities': None,
|
|
||||||
'config_entry_id': <ANY>,
|
|
||||||
'config_subentry_id': <ANY>,
|
|
||||||
'device_class': None,
|
|
||||||
'device_id': <ANY>,
|
|
||||||
'disabled_by': None,
|
|
||||||
'domain': 'siren',
|
|
||||||
'entity_category': None,
|
|
||||||
'entity_id': 'siren.siren_veranda',
|
|
||||||
'has_entity_name': True,
|
|
||||||
'hidden_by': None,
|
|
||||||
'icon': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'name': None,
|
|
||||||
'options': dict({
|
|
||||||
}),
|
|
||||||
'original_device_class': None,
|
|
||||||
'original_icon': None,
|
|
||||||
'original_name': None,
|
|
||||||
'platform': 'tuya',
|
|
||||||
'previous_unique_id': None,
|
|
||||||
'suggested_object_id': None,
|
|
||||||
'supported_features': <SirenEntityFeature: 3>,
|
|
||||||
'translation_key': None,
|
|
||||||
'unique_id': 'tuya.kjr0pqg7eunn4vlujbgsalarm_switch',
|
|
||||||
'unit_of_measurement': None,
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[sgbj_ulv4nnue7gqp0rjk][siren.siren_veranda-state]
|
|
||||||
StateSnapshot({
|
|
||||||
'attributes': ReadOnlyDict({
|
|
||||||
'friendly_name': 'Siren veranda ',
|
|
||||||
'supported_features': <SirenEntityFeature: 3>,
|
|
||||||
}),
|
|
||||||
'context': <ANY>,
|
|
||||||
'entity_id': 'siren.siren_veranda',
|
|
||||||
'last_changed': <ANY>,
|
|
||||||
'last_reported': <ANY>,
|
|
||||||
'last_updated': <ANY>,
|
|
||||||
'state': 'off',
|
|
||||||
})
|
|
||||||
# ---
|
|
||||||
# name: test_platform_setup_and_discovery[sp_sdd5f5f2dl5wydjf][siren.c9-entry]
|
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -132,7 +83,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sp_sdd5f5f2dl5wydjf][siren.c9-state]
|
# name: test_platform_setup_and_discovery[siren.c9-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'friendly_name': 'C9',
|
'friendly_name': 'C9',
|
||||||
@@ -146,3 +97,52 @@
|
|||||||
'state': 'off',
|
'state': 'off',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[siren.siren_veranda-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'siren',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'siren.siren_veranda',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': None,
|
||||||
|
'platform': 'tuya',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': <SirenEntityFeature: 3>,
|
||||||
|
'translation_key': None,
|
||||||
|
'unique_id': 'tuya.kjr0pqg7eunn4vlujbgsalarm_switch',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_platform_setup_and_discovery[siren.siren_veranda-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'friendly_name': 'Siren veranda ',
|
||||||
|
'supported_features': <SirenEntityFeature: 3>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'siren.siren_veranda',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'off',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
# serializer version: 1
|
# serializer version: 1
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][vacuum.v20-entry]
|
# name: test_platform_setup_and_discovery[vacuum.v20-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
}),
|
}),
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
'unit_of_measurement': None,
|
'unit_of_measurement': None,
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][vacuum.v20-state]
|
# name: test_platform_setup_and_discovery[vacuum.v20-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
'fan_speed': 'strong',
|
'fan_speed': 'strong',
|
||||||
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
from tuya_sharing import CustomerDevice
|
from tuya_sharing import CustomerDevice
|
||||||
|
|
||||||
@@ -13,45 +12,21 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.ALARM_CONTROL_PANEL in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.ALARM_CONTROL_PANEL])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.ALARM_CONTROL_PANEL])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.ALARM_CONTROL_PANEL not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.ALARM_CONTROL_PANEL])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -13,51 +13,27 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, MockDeviceListener, initialize_entry
|
from . import MockDeviceListener, initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.BINARY_SENSOR in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.BINARY_SENSOR])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.BINARY_SENSOR])
|
||||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.BINARY_SENSOR not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.BINARY_SENSOR])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["cs_zibqa9dutqyaxym2"],
|
["cs_zibqa9dutqyaxym2"],
|
||||||
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
from tuya_sharing import CustomerDevice
|
from tuya_sharing import CustomerDevice
|
||||||
|
|
||||||
@@ -13,45 +12,21 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.BUTTON in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.BUTTON])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.BUTTON])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.BUTTON not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.BUTTON])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -13,7 +13,7 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
@@ -28,22 +28,18 @@ def mock_getrandbits():
|
|||||||
yield
|
yield
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.CAMERA in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CAMERA])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CAMERA])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(
|
await snapshot_platform(
|
||||||
hass,
|
hass,
|
||||||
@@ -51,23 +47,3 @@ async def test_platform_setup_and_discovery(
|
|||||||
snapshot,
|
snapshot,
|
||||||
mock_config_entry.entry_id,
|
mock_config_entry.entry_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.CAMERA not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CAMERA])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -20,50 +20,26 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.exceptions import ServiceNotSupported
|
from homeassistant.exceptions import ServiceNotSupported
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.CLIMATE in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CLIMATE])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CLIMATE])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.CLIMATE not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CLIMATE])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["kt_5wnlzekkstwcdsvm"],
|
["kt_5wnlzekkstwcdsvm"],
|
||||||
|
@@ -21,50 +21,26 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.exceptions import ServiceNotSupported
|
from homeassistant.exceptions import ServiceNotSupported
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.COVER in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.COVER])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.COVER])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.COVER not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.COVER])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["cl_zah67ekd"],
|
["cl_zah67ekd"],
|
||||||
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
from tuya_sharing import CustomerDevice
|
from tuya_sharing import CustomerDevice
|
||||||
|
|
||||||
@@ -13,45 +12,21 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.EVENT in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.EVENT])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.EVENT])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.EVENT not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.EVENT])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
from tuya_sharing import CustomerDevice
|
from tuya_sharing import CustomerDevice
|
||||||
|
|
||||||
@@ -13,43 +12,21 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.FAN in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.FAN])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.FAN])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.FAN not in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.FAN])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -20,49 +20,26 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.exceptions import ServiceValidationError
|
from homeassistant.exceptions import ServiceValidationError
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.HUMIDIFIER in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.HUMIDIFIER])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.HUMIDIFIER])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.HUMIDIFIER not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.HUMIDIFIER])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["cs_zibqa9dutqyaxym2"],
|
["cs_zibqa9dutqyaxym2"],
|
||||||
|
@@ -18,50 +18,26 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.LIGHT in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.LIGHT])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.LIGHT])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.LIGHT not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.LIGHT])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["dj_mki13ie507rlry4r"],
|
["dj_mki13ie507rlry4r"],
|
||||||
|
@@ -15,48 +15,26 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.exceptions import ServiceValidationError
|
from homeassistant.exceptions import ServiceValidationError
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.NUMBER in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.NUMBER])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.NUMBER])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.NUMBER not in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.NUMBER])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["mal_gyitctrjj1kefxp2"],
|
["mal_gyitctrjj1kefxp2"],
|
||||||
|
@@ -18,48 +18,26 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.exceptions import ServiceValidationError
|
from homeassistant.exceptions import ServiceValidationError
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SELECT in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SELECT])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SELECT])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SELECT not in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SELECT])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["cl_zah67ekd"],
|
["cl_zah67ekd"],
|
||||||
|
@@ -13,44 +13,22 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SENSOR in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SENSOR])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SENSOR])
|
||||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SENSOR not in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SENSOR])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
from tuya_sharing import CustomerDevice
|
from tuya_sharing import CustomerDevice
|
||||||
|
|
||||||
@@ -13,43 +12,21 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SIREN in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SIREN])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SIREN])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SIREN not in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SIREN])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
from tuya_sharing import CustomerDevice
|
from tuya_sharing import CustomerDevice
|
||||||
|
|
||||||
@@ -13,43 +12,21 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SWITCH in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SWITCH])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SWITCH])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code", [k for k, v in DEVICE_MOCKS.items() if Platform.SWITCH not in v]
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.SWITCH])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
@@ -17,50 +17,26 @@ from homeassistant.const import Platform
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
||||||
from . import DEVICE_MOCKS, initialize_entry
|
from . import initialize_entry
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, snapshot_platform
|
from tests.common import MockConfigEntry, snapshot_platform
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.VACUUM in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.VACUUM])
|
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.VACUUM])
|
||||||
async def test_platform_setup_and_discovery(
|
async def test_platform_setup_and_discovery(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_manager: ManagerCompat,
|
mock_manager: ManagerCompat,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
mock_device: CustomerDevice,
|
mock_devices: list[CustomerDevice],
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
snapshot: SnapshotAssertion,
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test platform setup and discovery."""
|
"""Test platform setup and discovery."""
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
await initialize_entry(hass, mock_manager, mock_config_entry, mock_devices)
|
||||||
|
|
||||||
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"mock_device_code",
|
|
||||||
[k for k, v in DEVICE_MOCKS.items() if Platform.VACUUM not in v],
|
|
||||||
)
|
|
||||||
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.VACUUM])
|
|
||||||
async def test_platform_setup_no_discovery(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
mock_manager: ManagerCompat,
|
|
||||||
mock_config_entry: MockConfigEntry,
|
|
||||||
mock_device: CustomerDevice,
|
|
||||||
entity_registry: er.EntityRegistry,
|
|
||||||
) -> None:
|
|
||||||
"""Test platform setup without discovery."""
|
|
||||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
|
||||||
|
|
||||||
assert not er.async_entries_for_config_entry(
|
|
||||||
entity_registry, mock_config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"mock_device_code",
|
"mock_device_code",
|
||||||
["sd_lr33znaodtyarrrz"],
|
["sd_lr33znaodtyarrrz"],
|
||||||
|
Reference in New Issue
Block a user