Speedup Tuya snapshot tests (#150198)

This commit is contained in:
epenet
2025-08-09 07:46:48 +02:00
committed by GitHub
parent 5c1d16d582
commit 586b197fc3
34 changed files with 11652 additions and 12011 deletions

View File

@@ -532,13 +532,14 @@ async def initialize_entry(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: CustomerDevice | list[CustomerDevice],
) -> None:
"""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
mock_manager.device_map = {
mock_device.id: mock_device,
}
mock_config_entry.add_to_hass(hass)
# Initialize the component

View File

@@ -21,7 +21,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.json import json_dumps
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
@@ -138,8 +138,25 @@ def mock_device_code() -> str:
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
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."""
details = await async_load_json_object_fixture(
hass, f"{mock_device_code}.json", DOMAIN

View File

@@ -1,5 +1,5 @@
# 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({
'aliases': set({
}),
@@ -34,7 +34,7 @@
'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({
'attributes': ReadOnlyDict({
'changed_by': None,

View File

@@ -1,5 +1,5 @@
# 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({
'aliases': set({
}),
@@ -34,7 +34,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'safety',
@@ -48,7 +48,7 @@
'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({
'aliases': set({
}),
@@ -83,7 +83,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'problem',
@@ -97,7 +97,7 @@
'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({
'aliases': set({
}),
@@ -132,7 +132,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'problem',
@@ -146,7 +146,7 @@
'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({
'aliases': set({
}),
@@ -181,7 +181,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'problem',
@@ -195,7 +195,7 @@
'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({
'aliases': set({
}),
@@ -230,7 +230,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'problem',
@@ -244,7 +244,7 @@
'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({
'aliases': set({
}),
@@ -279,7 +279,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'problem',
@@ -293,56 +293,7 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[hps_2aaelwxk][binary_sensor.human_presence_office_occupancy-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]
# name: test_platform_setup_and_discovery[binary_sensor.door_garage_door-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -377,7 +328,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'door',
@@ -391,252 +342,7 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[pir_3amxzozho9xp4mkh][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[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]
# name: test_platform_setup_and_discovery[binary_sensor.gas_sensor_gas-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -671,7 +377,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'gas',
@@ -685,7 +391,7 @@
'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({
'aliases': set({
}),
@@ -698,7 +404,7 @@
'disabled_by': None,
'domain': 'binary_sensor',
'entity_category': None,
'entity_id': 'binary_sensor.tournesol_moisture',
'entity_id': 'binary_sensor.human_presence_office_occupancy',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
@@ -708,33 +414,82 @@
'name': None,
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
'original_device_class': <BinarySensorDeviceClass.OCCUPANCY: 'occupancy'>,
'original_icon': None,
'original_name': 'Moisture',
'original_name': 'Occupancy',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tuya.codvtvgtjswatersensor_state',
'unique_id': 'tuya.kxwleaa2sphpresence_state',
'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({
'attributes': ReadOnlyDict({
'device_class': 'moisture',
'friendly_name': 'Tournesol Moisture',
'device_class': 'occupancy',
'friendly_name': 'Human presence Office Occupancy',
}),
'context': <ANY>,
'entity_id': 'binary_sensor.tournesol_moisture',
'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[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({
'aliases': set({
}),
@@ -747,7 +502,7 @@
'disabled_by': None,
'domain': 'binary_sensor',
'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,
'hidden_by': None,
'icon': None,
@@ -757,33 +512,180 @@
'name': None,
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
'original_device_class': <BinarySensorDeviceClass.TAMPER: 'tamper'>,
'original_icon': None,
'original_name': 'Problem',
'original_name': 'Tamper',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tuya.orotles4ucq8rxwn2gwmaster_state',
'unique_id': 'tuya.s3zzjdcfriptemper_alarm',
'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({
'attributes': ReadOnlyDict({
'device_class': 'problem',
'friendly_name': 'X5 Zigbee Gateway Problem',
'device_class': 'tamper',
'friendly_name': 'Motion sensor lidl zigbee Tamper',
}),
'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_reported': <ANY>,
'last_updated': <ANY>,
'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({
'aliases': set({
}),
@@ -818,7 +720,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'smoke',
@@ -832,3 +734,101 @@
'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',
})
# ---

View File

@@ -1,5 +1,5 @@
# 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({
'aliases': set({
}),
@@ -34,7 +34,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'V20 Reset duster cloth',
@@ -47,7 +47,7 @@
'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({
'aliases': set({
}),
@@ -82,7 +82,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'V20 Reset edge brush',
@@ -95,7 +95,7 @@
'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({
'aliases': set({
}),
@@ -130,7 +130,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'V20 Reset filter',
@@ -143,7 +143,7 @@
'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({
'aliases': set({
}),
@@ -178,7 +178,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'V20 Reset map',
@@ -191,7 +191,7 @@
'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({
'aliases': set({
}),
@@ -226,7 +226,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'V20 Reset roll brush',

View File

@@ -1,112 +1,5 @@
# serializer version: 1
# name: test_platform_setup_and_discovery[sp_drezasavompxpcgm][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[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]
# name: test_platform_setup_and_discovery[camera.c9-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -141,7 +34,7 @@
'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({
'attributes': ReadOnlyDict({
'access_token': '1',
@@ -160,3 +53,110 @@
'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',
})
# ---

View File

@@ -1,5 +1,5 @@
# 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({
'aliases': set({
}),
@@ -46,7 +46,7 @@
'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({
'attributes': ReadOnlyDict({
'current_temperature': 22.0,
@@ -74,82 +74,7 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[wk_6kijc7nd][climate.kabinet-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]
# name: test_platform_setup_and_discovery[climate.clima_cucina-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -199,7 +124,7 @@
'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({
'attributes': ReadOnlyDict({
'current_temperature': 27.0,
@@ -230,7 +155,7 @@
'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({
'aliases': set({
}),
@@ -239,9 +164,13 @@
'hvac_modes': list([
<HVACMode.OFF: 'off'>,
<HVACMode.HEAT_COOL: 'heat_cool'>,
<HVACMode.HEAT_COOL: 'heat_cool'>,
]),
'max_temp': 35.0,
'max_temp': 95.0,
'min_temp': 5.0,
'preset_modes': list([
'program',
]),
'target_temp_step': 0.5,
}),
'config_entry_id': <ANY>,
@@ -251,7 +180,7 @@
'disabled_by': None,
'domain': 'climate',
'entity_category': None,
'entity_id': 'climate.wifi_smart_gas_boiler_thermostat',
'entity_id': 'climate.kabinet',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
@@ -267,36 +196,41 @@
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <ClimateEntityFeature: 385>,
'supported_features': <ClimateEntityFeature: 401>,
'translation_key': None,
'unique_id': 'tuya.j6mn1t4ut5end6ifkw',
'unique_id': 'tuya.dn7cjik6kw',
'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({
'attributes': ReadOnlyDict({
'current_temperature': 24.9,
'friendly_name': 'WiFi Smart Gas Boiler Thermostat ',
'current_temperature': 19.5,
'friendly_name': 'Кабінет',
'hvac_modes': list([
<HVACMode.OFF: 'off'>,
<HVACMode.HEAT_COOL: 'heat_cool'>,
<HVACMode.HEAT_COOL: 'heat_cool'>,
]),
'max_temp': 35.0,
'max_temp': 95.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,
'temperature': 22.0,
'temperature': 21.5,
}),
'context': <ANY>,
'entity_id': 'climate.wifi_smart_gas_boiler_thermostat',
'entity_id': 'climate.kabinet',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'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({
'aliases': set({
}),
@@ -340,7 +274,7 @@
'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({
'attributes': ReadOnlyDict({
'current_temperature': 21.5,
@@ -364,7 +298,7 @@
'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({
'aliases': set({
}),
@@ -407,7 +341,7 @@
'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({
'attributes': ReadOnlyDict({
'current_temperature': 23.0,
@@ -430,3 +364,69 @@
'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',
})
# ---

View File

@@ -1,158 +1,5 @@
# serializer version: 1
# name: test_platform_setup_and_discovery[cl_3r8gc33pnqsxfe1g][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[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]
# name: test_platform_setup_and_discovery[cover.bedroom_blinds_curtain-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -187,7 +34,7 @@
'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({
'attributes': ReadOnlyDict({
'current_position': 0,
@@ -203,7 +50,109 @@
'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({
'aliases': set({
}),
@@ -238,7 +187,7 @@
'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({
'attributes': ReadOnlyDict({
'current_position': 48,
@@ -254,7 +203,58 @@
'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({
'aliases': set({
}),
@@ -289,7 +289,7 @@
'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({
'attributes': ReadOnlyDict({
'current_position': 0,

View File

@@ -1,5 +1,5 @@
# 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({
'aliases': set({
}),
@@ -39,7 +39,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'button',
@@ -58,7 +58,7 @@
'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({
'aliases': set({
}),
@@ -98,7 +98,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'button',

View File

@@ -1,11 +1,12 @@
# serializer version: 1
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][fan.dehumidifer-entry]
# name: test_platform_setup_and_discovery[fan.bree-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'preset_modes': list([
'sleep',
]),
}),
'config_entry_id': <ANY>,
@@ -15,7 +16,7 @@
'disabled_by': None,
'domain': 'fan',
'entity_category': None,
'entity_id': 'fan.dehumidifer',
'entity_id': 'fan.bree',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
@@ -31,179 +32,31 @@
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 49>,
'supported_features': <FanEntityFeature: 56>,
'translation_key': None,
'unique_id': 'tuya.ifzgvpgoodrfw2aksc',
'unique_id': 'tuya.ppgdpsq1xaxlyzryjk',
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'Dehumidifer',
'friendly_name': 'Bree',
'preset_mode': 'normal',
'preset_modes': list([
'sleep',
]),
'supported_features': <FanEntityFeature: 49>,
'supported_features': <FanEntityFeature: 56>,
}),
'context': <ANY>,
'entity_id': 'fan.dehumidifer',
'entity_id': 'fan.bree',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[cs_qhxmvae667uap4zh][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[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]
# name: test_platform_setup_and_discovery[fan.ceiling_fan_with_light-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -244,7 +97,7 @@
'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({
'attributes': ReadOnlyDict({
'direction': 'reverse',
@@ -267,7 +120,61 @@
'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({
'aliases': set({
}),
@@ -281,7 +188,7 @@
'disabled_by': None,
'domain': 'fan',
'entity_category': None,
'entity_id': 'fan.ventilador_cama',
'entity_id': 'fan.dehumidifier',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
@@ -299,25 +206,125 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tuya.c1tfgunpf6optybisf',
'unique_id': 'tuya.ilms5pwjzzsxuxmvsc',
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'Ventilador Cama',
'friendly_name': 'Dehumidifier ',
'supported_features': <FanEntityFeature: 0>,
}),
'context': <ANY>,
'entity_id': 'fan.ventilador_cama',
'entity_id': 'fan.dehumidifier',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'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({
'aliases': set({
}),
@@ -355,7 +362,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'HL400',
@@ -374,64 +381,7 @@
'state': 'on',
})
# ---
# name: test_platform_setup_and_discovery[kj_yrzylxax1qspdgpp][fan.bree-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]
# name: test_platform_setup_and_discovery[fan.tower_fan_ca_407g_smart-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -472,7 +422,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'Tower Fan CA-407G Smart',
@@ -495,3 +445,53 @@
'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',
})
# ---

View File

@@ -1,5 +1,5 @@
# serializer version: 1
# name: test_platform_setup_and_discovery[cs_ka2wfrdoogpvgzfi][humidifier.dehumidifer-entry]
# name: test_platform_setup_and_discovery[humidifier.dehumidifer-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -37,7 +37,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'dehumidifier',
@@ -54,62 +54,7 @@
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cs_qhxmvae667uap4zh][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[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]
# name: test_platform_setup_and_discovery[humidifier.dehumidifier-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -147,7 +92,7 @@
'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({
'attributes': ReadOnlyDict({
'device_class': 'dehumidifier',
@@ -164,7 +109,7 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][humidifier.dehumidifier-entry]
# name: test_platform_setup_and_discovery[humidifier.dehumidifier_2-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -180,7 +125,7 @@
'disabled_by': None,
'domain': 'humidifier',
'entity_category': None,
'entity_id': 'humidifier.dehumidifier',
'entity_id': 'humidifier.dehumidifier_2',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
@@ -202,7 +147,7 @@
'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({
'attributes': ReadOnlyDict({
'current_humidity': 47,
@@ -214,10 +159,65 @@
'supported_features': <HumidifierEntityFeature: 0>,
}),
'context': <ANY>,
'entity_id': 'humidifier.dehumidifier',
'entity_id': 'humidifier.dehumidifier_2',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'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

View File

@@ -1,5 +1,5 @@
# serializer version: 1
# name: test_platform_setup_and_discovery[co2bj_yrr3eiyiacm31ski][siren.aqi-entry]
# name: test_platform_setup_and_discovery[siren.aqi-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -34,7 +34,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'AQI',
@@ -48,56 +48,7 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[sgbj_ulv4nnue7gqp0rjk][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[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]
# name: test_platform_setup_and_discovery[siren.c9-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -132,7 +83,7 @@
'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({
'attributes': ReadOnlyDict({
'friendly_name': 'C9',
@@ -146,3 +97,52 @@
'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

View File

@@ -1,5 +1,5 @@
# serializer version: 1
# name: test_platform_setup_and_discovery[sd_lr33znaodtyarrrz][vacuum.v20-entry]
# name: test_platform_setup_and_discovery[vacuum.v20-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@@ -40,7 +40,7 @@
'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({
'attributes': ReadOnlyDict({
'fan_speed': 'strong',

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from tuya_sharing import CustomerDevice
@@ -13,45 +12,21 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -13,51 +13,27 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["cs_zibqa9dutqyaxym2"],

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from tuya_sharing import CustomerDevice
@@ -13,45 +12,21 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -13,7 +13,7 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@@ -28,22 +28,18 @@ def mock_getrandbits():
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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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,
@@ -51,23 +47,3 @@ async def test_platform_setup_and_discovery(
snapshot,
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
)

View File

@@ -20,50 +20,26 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceNotSupported
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["kt_5wnlzekkstwcdsvm"],

View File

@@ -21,50 +21,26 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceNotSupported
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["cl_zah67ekd"],

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from tuya_sharing import CustomerDevice
@@ -13,45 +12,21 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from tuya_sharing import CustomerDevice
@@ -13,43 +12,21 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -20,49 +20,26 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceValidationError
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["cs_zibqa9dutqyaxym2"],

View File

@@ -18,50 +18,26 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["dj_mki13ie507rlry4r"],

View File

@@ -15,48 +15,26 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceValidationError
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["mal_gyitctrjj1kefxp2"],

View File

@@ -18,48 +18,26 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceValidationError
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["cl_zah67ekd"],

View File

@@ -13,44 +13,22 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from tuya_sharing import CustomerDevice
@@ -13,43 +12,21 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from tuya_sharing import CustomerDevice
@@ -13,43 +12,21 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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
)

View File

@@ -17,50 +17,26 @@ from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
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
@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])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: ManagerCompat,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
mock_devices: list[CustomerDevice],
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""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)
@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(
"mock_device_code",
["sd_lr33znaodtyarrrz"],