mirror of
https://github.com/home-assistant/core.git
synced 2025-11-09 02:49:40 +00:00
Allow hiding and unhiding group members (#68192)
This commit is contained in:
@@ -1416,3 +1416,97 @@ async def test_setup_and_remove_config_entry(
|
||||
# Check the state and entity registry entry are removed
|
||||
assert hass.states.get(f"{group_type}.bed_room") is None
|
||||
assert registry.async_get(f"{group_type}.bed_room") is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"hide_members,hidden_by_initial,hidden_by",
|
||||
(
|
||||
(False, "integration", "integration"),
|
||||
(False, None, None),
|
||||
(False, "user", "user"),
|
||||
(True, "integration", None),
|
||||
(True, None, None),
|
||||
(True, "user", "user"),
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"group_type,extra_options",
|
||||
(
|
||||
("binary_sensor", {"all": False}),
|
||||
("cover", {}),
|
||||
("fan", {}),
|
||||
("light", {}),
|
||||
("media_player", {}),
|
||||
),
|
||||
)
|
||||
async def test_unhide_members_on_remove(
|
||||
hass: HomeAssistant,
|
||||
group_type: str,
|
||||
extra_options: dict[str, Any],
|
||||
hide_members: bool,
|
||||
hidden_by_initial: str,
|
||||
hidden_by: str,
|
||||
) -> None:
|
||||
"""Test removing a config entry."""
|
||||
registry = er.async_get(hass)
|
||||
|
||||
registry = er.async_get(hass)
|
||||
entry1 = registry.async_get_or_create(
|
||||
group_type,
|
||||
"test",
|
||||
"unique1",
|
||||
suggested_object_id="one",
|
||||
hidden_by=hidden_by_initial,
|
||||
)
|
||||
assert entry1.entity_id == f"{group_type}.one"
|
||||
|
||||
entry3 = registry.async_get_or_create(
|
||||
group_type,
|
||||
"test",
|
||||
"unique3",
|
||||
suggested_object_id="three",
|
||||
hidden_by=hidden_by_initial,
|
||||
)
|
||||
assert entry3.entity_id == f"{group_type}.three"
|
||||
|
||||
entry4 = registry.async_get_or_create(
|
||||
group_type,
|
||||
"test",
|
||||
"unique4",
|
||||
suggested_object_id="four",
|
||||
)
|
||||
assert entry4.entity_id == f"{group_type}.four"
|
||||
|
||||
members = [f"{group_type}.one", f"{group_type}.two", entry3.id, entry4.id]
|
||||
|
||||
# Setup the config entry
|
||||
group_config_entry = MockConfigEntry(
|
||||
data={},
|
||||
domain=group.DOMAIN,
|
||||
options={
|
||||
"entities": members,
|
||||
"group_type": group_type,
|
||||
"hide_members": hide_members,
|
||||
"name": "Bed Room",
|
||||
**extra_options,
|
||||
},
|
||||
title="Bed Room",
|
||||
)
|
||||
group_config_entry.add_to_hass(hass)
|
||||
assert await hass.config_entries.async_setup(group_config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
# Check the state is present
|
||||
assert hass.states.get(f"{group_type}.bed_room")
|
||||
|
||||
# Remove one entity registry entry, to make sure this does not trip up config entry
|
||||
# removal
|
||||
registry.async_remove(entry4.entity_id)
|
||||
|
||||
# Remove the config entry
|
||||
assert await hass.config_entries.async_remove(group_config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
# Check the group members are unhidden
|
||||
assert registry.async_get(f"{group_type}.one").hidden_by == hidden_by
|
||||
assert registry.async_get(f"{group_type}.three").hidden_by == hidden_by
|
||||
|
||||
Reference in New Issue
Block a user