mirror of
https://github.com/home-assistant/core.git
synced 2026-03-01 14:25:31 +00:00
* Reapply "Add support for subentries to config entries" (#133470) (#136061)
* Reapply "Add support for subentries to config entries" (#133470)
This reverts commit ecb3bf79f3.
* Update test snapshot
* Add config subentry support to device registry (#128157)
* Add config subentry support to device registry
* Apply suggestions from code review
* Update syrupy serializer
* Update snapshots
* Address review comments
* Allow a device to be connected to no or a single subentry of a config entry
* Update snapshots
* Revert "Allow a device to be connected to no or a single subentry of a config entry"
This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2.
* Update test snapshots
* Bump release version in comments
* Rename config_subentries to config_entries_subentries
* Add config subentry support to entity registry (#128155)
* Add config subentry support to entity registry
* Update syrupy serializer
* Update snapshots
* Update snapshots
* Accept suggested changes
* Clean registries when removing subentry (#136671)
* Clean up registries when removing subentry
* Update tests
* Clean up subentries from deleted devices when removing config entry (#136669)
* Clean up subentries from deleted devices when removing config entry
* Move
* Add config subentry support to entity platform (#128161)
* Add config subentry support to entity platform
* Rename subentry_id to config_subentry_id
* Store subentry type in subentry (#136687)
* Add reconfigure support to config subentries (#133353)
* Add reconfigure support to config subentries
* Update test
* Minor adjustment
* Rename supported_subentry_flows to supported_subentry_types
* Address review comments
* Add subentry support to kitchen sink (#136755)
* Add subentry support to kitchen sink
* Add subentry reconfigure support to kitchen_sink
* Update kitchen_sink tests with subentry type stored in config entry
* Update kitchen_sink
* Update kitchen_sink
* Adjust kitchen sink tests
* Fix hassfest
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Improve docstrings and strings.json
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
562 lines
13 KiB
Plaintext
562 lines
13 KiB
Plaintext
# serializer version: 1
|
|
# name: test_switch_state[Air Purifier 131s][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'air-purifier',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'LV-PUR131S',
|
|
'model_id': None,
|
|
'name': 'Air Purifier 131s',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 131s][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 200s][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'asd_sdfKIHG7IJHGwJGJ7GJ_ag5h3G55',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'Core200S',
|
|
'model_id': None,
|
|
'name': 'Air Purifier 200s',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 200s][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 400s][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'400s-purifier',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'LAP-C401S-WJP',
|
|
'model_id': None,
|
|
'name': 'Air Purifier 400s',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 400s][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 600s][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'600s-purifier',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'LAP-C601S-WUS',
|
|
'model_id': None,
|
|
'name': 'Air Purifier 600s',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Air Purifier 600s][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Dimmable Light][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'dimmable-bulb',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'ESL100',
|
|
'model_id': None,
|
|
'name': 'Dimmable Light',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Dimmable Light][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Dimmer Switch][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'dimmable-switch',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'ESWD16',
|
|
'model_id': None,
|
|
'name': 'Dimmer Switch',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Dimmer Switch][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Humidifier 200s][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'200s-humidifier4321',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'Classic200S',
|
|
'model_id': None,
|
|
'name': 'Humidifier 200s',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Humidifier 200s][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Humidifier 600S][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'600s-humidifier',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'LUH-A602S-WUS',
|
|
'model_id': None,
|
|
'name': 'Humidifier 600S',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Humidifier 600S][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Outlet][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'outlet',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'wifi-switch-1.3',
|
|
'model_id': None,
|
|
'name': 'Outlet',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Outlet][entities]
|
|
list([
|
|
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': 'switch',
|
|
'entity_category': None,
|
|
'entity_id': 'switch.outlet',
|
|
'has_entity_name': True,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
|
|
'original_icon': None,
|
|
'original_name': None,
|
|
'platform': 'vesync',
|
|
'previous_unique_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': None,
|
|
'unique_id': 'outlet-device_status',
|
|
'unit_of_measurement': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Outlet][switch.outlet]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'device_class': 'outlet',
|
|
'friendly_name': 'Outlet',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'switch.outlet',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'on',
|
|
})
|
|
# ---
|
|
# name: test_switch_state[SmartTowerFan][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'smarttowerfan',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'LTF-F422S-KEU',
|
|
'model_id': None,
|
|
'name': 'SmartTowerFan',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[SmartTowerFan][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Temperature Light][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'tunable-bulb',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'ESL100CW',
|
|
'model_id': None,
|
|
'name': 'Temperature Light',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Temperature Light][entities]
|
|
list([
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Wall Switch][devices]
|
|
list([
|
|
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(
|
|
'vesync',
|
|
'switch',
|
|
),
|
|
}),
|
|
'is_new': False,
|
|
'labels': set({
|
|
}),
|
|
'manufacturer': 'VeSync',
|
|
'model': 'ESWL01',
|
|
'model_id': None,
|
|
'name': 'Wall Switch',
|
|
'name_by_user': None,
|
|
'primary_config_entry': <ANY>,
|
|
'serial_number': None,
|
|
'suggested_area': None,
|
|
'sw_version': None,
|
|
'via_device_id': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Wall Switch][entities]
|
|
list([
|
|
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': 'switch',
|
|
'entity_category': None,
|
|
'entity_id': 'switch.wall_switch',
|
|
'has_entity_name': True,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
|
|
'original_icon': None,
|
|
'original_name': None,
|
|
'platform': 'vesync',
|
|
'previous_unique_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': None,
|
|
'unique_id': 'switch-device_status',
|
|
'unit_of_measurement': None,
|
|
}),
|
|
])
|
|
# ---
|
|
# name: test_switch_state[Wall Switch][switch.wall_switch]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'device_class': 'switch',
|
|
'friendly_name': 'Wall Switch',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'switch.wall_switch',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'on',
|
|
})
|
|
# ---
|