mirror of
https://github.com/home-assistant/core.git
synced 2025-08-02 10:08:23 +00:00
Fix flaky velbus test (#149743)
This commit is contained in:
parent
61396d92a5
commit
4d59e8cd80
@ -97,6 +97,7 @@ def mock_module_subdevices() -> AsyncMock:
|
|||||||
"""Mock a velbus module."""
|
"""Mock a velbus module."""
|
||||||
module = AsyncMock(spec=Module)
|
module = AsyncMock(spec=Module)
|
||||||
module.get_type_name.return_value = "VMB2BLE"
|
module.get_type_name.return_value = "VMB2BLE"
|
||||||
|
module.get_type.return_value = "123"
|
||||||
module.get_addresses.return_value = [88]
|
module.get_addresses.return_value = [88]
|
||||||
module.get_name.return_value = "Kitchen"
|
module.get_name.return_value = "Kitchen"
|
||||||
module.get_serial.return_value = "a1b2c3d4e5f6"
|
module.get_serial.return_value = "a1b2c3d4e5f6"
|
||||||
@ -138,7 +139,7 @@ def mock_temperature() -> AsyncMock:
|
|||||||
channel.get_module_sw_version.return_value = "3.0.0"
|
channel.get_module_sw_version.return_value = "3.0.0"
|
||||||
channel.get_module_serial.return_value = "asdfghjk"
|
channel.get_module_serial.return_value = "asdfghjk"
|
||||||
channel.get_module_type.return_value = 1
|
channel.get_module_type.return_value = 1
|
||||||
channel.is_sub_device.return_value = False
|
channel.is_sub_device.return_value = True
|
||||||
channel.is_counter_channel.return_value = False
|
channel.is_counter_channel.return_value = False
|
||||||
channel.get_class.return_value = "temperature"
|
channel.get_class.return_value = "temperature"
|
||||||
channel.get_unit.return_value = "°C"
|
channel.get_unit.return_value = "°C"
|
||||||
@ -184,7 +185,7 @@ def mock_select() -> AsyncMock:
|
|||||||
channel.get_full_name.return_value = "Kitchen"
|
channel.get_full_name.return_value = "Kitchen"
|
||||||
channel.get_module_sw_version.return_value = "1.1.1"
|
channel.get_module_sw_version.return_value = "1.1.1"
|
||||||
channel.get_module_serial.return_value = "qwerty1234567"
|
channel.get_module_serial.return_value = "qwerty1234567"
|
||||||
channel.is_sub_device.return_value = False
|
channel.is_sub_device.return_value = True
|
||||||
channel.get_options.return_value = ["none", "summer", "winter", "holiday"]
|
channel.get_options.return_value = ["none", "summer", "winter", "holiday"]
|
||||||
channel.get_selected_program.return_value = "winter"
|
channel.get_selected_program.return_value = "winter"
|
||||||
return channel
|
return channel
|
||||||
|
@ -46,7 +46,38 @@
|
|||||||
'identifiers': set({
|
'identifiers': set({
|
||||||
tuple(
|
tuple(
|
||||||
'velbus',
|
'velbus',
|
||||||
'88-9',
|
'2',
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
'is_new': False,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'manufacturer': 'Velleman',
|
||||||
|
'model': 'VMB7IN',
|
||||||
|
'model_id': '8',
|
||||||
|
'name': 'Input',
|
||||||
|
'name_by_user': None,
|
||||||
|
'primary_config_entry': <ANY>,
|
||||||
|
'serial_number': 'a1b2c3d4e5f6',
|
||||||
|
'suggested_area': None,
|
||||||
|
'sw_version': '1.0.0',
|
||||||
|
'via_device_id': None,
|
||||||
|
}),
|
||||||
|
DeviceRegistryEntrySnapshot({
|
||||||
|
'area_id': None,
|
||||||
|
'config_entries': <ANY>,
|
||||||
|
'config_entries_subentries': <ANY>,
|
||||||
|
'configuration_url': None,
|
||||||
|
'connections': set({
|
||||||
|
}),
|
||||||
|
'disabled_by': None,
|
||||||
|
'entry_type': None,
|
||||||
|
'hw_version': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'identifiers': set({
|
||||||
|
tuple(
|
||||||
|
'velbus',
|
||||||
|
'88',
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
'is_new': False,
|
'is_new': False,
|
||||||
@ -54,13 +85,44 @@
|
|||||||
}),
|
}),
|
||||||
'manufacturer': 'Velleman',
|
'manufacturer': 'Velleman',
|
||||||
'model': 'VMB2BLE',
|
'model': 'VMB2BLE',
|
||||||
'model_id': '10',
|
'model_id': '123',
|
||||||
'name': 'Basement',
|
'name': 'Kitchen (VMB2BLE)',
|
||||||
'name_by_user': None,
|
'name_by_user': None,
|
||||||
'primary_config_entry': <ANY>,
|
'primary_config_entry': <ANY>,
|
||||||
'serial_number': '1234',
|
'serial_number': 'a1b2c3d4e5f6',
|
||||||
'suggested_area': None,
|
'suggested_area': None,
|
||||||
'sw_version': '1.0.1',
|
'sw_version': '2.0.0',
|
||||||
|
'via_device_id': None,
|
||||||
|
}),
|
||||||
|
DeviceRegistryEntrySnapshot({
|
||||||
|
'area_id': None,
|
||||||
|
'config_entries': <ANY>,
|
||||||
|
'config_entries_subentries': <ANY>,
|
||||||
|
'configuration_url': None,
|
||||||
|
'connections': set({
|
||||||
|
}),
|
||||||
|
'disabled_by': None,
|
||||||
|
'entry_type': None,
|
||||||
|
'hw_version': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'identifiers': set({
|
||||||
|
tuple(
|
||||||
|
'velbus',
|
||||||
|
'88-10',
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
'is_new': False,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'manufacturer': 'Velleman',
|
||||||
|
'model': 'VMBDN1',
|
||||||
|
'model_id': '9',
|
||||||
|
'name': 'Dimmer full name',
|
||||||
|
'name_by_user': None,
|
||||||
|
'primary_config_entry': <ANY>,
|
||||||
|
'serial_number': 'a1b2c3d4e5f6g7',
|
||||||
|
'suggested_area': None,
|
||||||
|
'sw_version': '1.0.0',
|
||||||
'via_device_id': <ANY>,
|
'via_device_id': <ANY>,
|
||||||
}),
|
}),
|
||||||
DeviceRegistryEntrySnapshot({
|
DeviceRegistryEntrySnapshot({
|
||||||
@ -94,37 +156,6 @@
|
|||||||
'sw_version': '1.0.1',
|
'sw_version': '1.0.1',
|
||||||
'via_device_id': <ANY>,
|
'via_device_id': <ANY>,
|
||||||
}),
|
}),
|
||||||
DeviceRegistryEntrySnapshot({
|
|
||||||
'area_id': None,
|
|
||||||
'config_entries': <ANY>,
|
|
||||||
'config_entries_subentries': <ANY>,
|
|
||||||
'configuration_url': None,
|
|
||||||
'connections': set({
|
|
||||||
}),
|
|
||||||
'disabled_by': None,
|
|
||||||
'entry_type': None,
|
|
||||||
'hw_version': None,
|
|
||||||
'id': <ANY>,
|
|
||||||
'identifiers': set({
|
|
||||||
tuple(
|
|
||||||
'velbus',
|
|
||||||
'88-10',
|
|
||||||
),
|
|
||||||
}),
|
|
||||||
'is_new': False,
|
|
||||||
'labels': set({
|
|
||||||
}),
|
|
||||||
'manufacturer': 'Velleman',
|
|
||||||
'model': 'VMBDN1',
|
|
||||||
'model_id': '9',
|
|
||||||
'name': 'Dimmer full name',
|
|
||||||
'name_by_user': None,
|
|
||||||
'primary_config_entry': <ANY>,
|
|
||||||
'serial_number': 'a1b2c3d4e5f6g7',
|
|
||||||
'suggested_area': None,
|
|
||||||
'sw_version': '1.0.0',
|
|
||||||
'via_device_id': <ANY>,
|
|
||||||
}),
|
|
||||||
DeviceRegistryEntrySnapshot({
|
DeviceRegistryEntrySnapshot({
|
||||||
'area_id': None,
|
'area_id': None,
|
||||||
'config_entries': <ANY>,
|
'config_entries': <ANY>,
|
||||||
@ -170,7 +201,7 @@
|
|||||||
'identifiers': set({
|
'identifiers': set({
|
||||||
tuple(
|
tuple(
|
||||||
'velbus',
|
'velbus',
|
||||||
'88',
|
'88-3',
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
'is_new': False,
|
'is_new': False,
|
||||||
@ -185,7 +216,7 @@
|
|||||||
'serial_number': 'asdfghjk',
|
'serial_number': 'asdfghjk',
|
||||||
'suggested_area': None,
|
'suggested_area': None,
|
||||||
'sw_version': '3.0.0',
|
'sw_version': '3.0.0',
|
||||||
'via_device_id': None,
|
'via_device_id': <ANY>,
|
||||||
}),
|
}),
|
||||||
DeviceRegistryEntrySnapshot({
|
DeviceRegistryEntrySnapshot({
|
||||||
'area_id': None,
|
'area_id': None,
|
||||||
@ -201,22 +232,22 @@
|
|||||||
'identifiers': set({
|
'identifiers': set({
|
||||||
tuple(
|
tuple(
|
||||||
'velbus',
|
'velbus',
|
||||||
'2',
|
'88-33',
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
'is_new': False,
|
'is_new': False,
|
||||||
'labels': set({
|
'labels': set({
|
||||||
}),
|
}),
|
||||||
'manufacturer': 'Velleman',
|
'manufacturer': 'Velleman',
|
||||||
'model': 'VMB7IN',
|
'model': 'VMB4RYNO',
|
||||||
'model_id': '8',
|
'model_id': '3',
|
||||||
'name': 'Input',
|
'name': 'Kitchen',
|
||||||
'name_by_user': None,
|
'name_by_user': None,
|
||||||
'primary_config_entry': <ANY>,
|
'primary_config_entry': <ANY>,
|
||||||
'serial_number': 'a1b2c3d4e5f6',
|
'serial_number': 'qwerty1234567',
|
||||||
'suggested_area': None,
|
'suggested_area': None,
|
||||||
'sw_version': '1.0.0',
|
'sw_version': '1.1.1',
|
||||||
'via_device_id': None,
|
'via_device_id': <ANY>,
|
||||||
}),
|
}),
|
||||||
DeviceRegistryEntrySnapshot({
|
DeviceRegistryEntrySnapshot({
|
||||||
'area_id': None,
|
'area_id': None,
|
||||||
@ -249,5 +280,36 @@
|
|||||||
'sw_version': '1.0.1',
|
'sw_version': '1.0.1',
|
||||||
'via_device_id': <ANY>,
|
'via_device_id': <ANY>,
|
||||||
}),
|
}),
|
||||||
|
DeviceRegistryEntrySnapshot({
|
||||||
|
'area_id': None,
|
||||||
|
'config_entries': <ANY>,
|
||||||
|
'config_entries_subentries': <ANY>,
|
||||||
|
'configuration_url': None,
|
||||||
|
'connections': set({
|
||||||
|
}),
|
||||||
|
'disabled_by': None,
|
||||||
|
'entry_type': None,
|
||||||
|
'hw_version': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'identifiers': set({
|
||||||
|
tuple(
|
||||||
|
'velbus',
|
||||||
|
'88-9',
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
'is_new': False,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'manufacturer': 'Velleman',
|
||||||
|
'model': 'VMB2BLE',
|
||||||
|
'model_id': '10',
|
||||||
|
'name': 'Basement',
|
||||||
|
'name_by_user': None,
|
||||||
|
'primary_config_entry': <ANY>,
|
||||||
|
'serial_number': '1234',
|
||||||
|
'suggested_area': None,
|
||||||
|
'sw_version': '1.0.1',
|
||||||
|
'via_device_id': <ANY>,
|
||||||
|
}),
|
||||||
])
|
])
|
||||||
# ---
|
# ---
|
||||||
|
@ -176,7 +176,8 @@ async def test_device_registry(
|
|||||||
device_entries = dr.async_entries_for_config_entry(
|
device_entries = dr.async_entries_for_config_entry(
|
||||||
device_registry, config_entry.entry_id
|
device_registry, config_entry.entry_id
|
||||||
)
|
)
|
||||||
assert device_entries == snapshot
|
# Sort by identifier to ensure consistent order in snapshot
|
||||||
|
assert sorted(device_entries, key=lambda x: list(x.identifiers)[0][1]) == snapshot
|
||||||
|
|
||||||
device_parent = device_registry.async_get_device(identifiers={(DOMAIN, "88")})
|
device_parent = device_registry.async_get_device(identifiers={(DOMAIN, "88")})
|
||||||
assert device_parent.via_device_id is None
|
assert device_parent.via_device_id is None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user