mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Keep track of top level components (#115586)
* Keep track of top level components Currently we have to do a set comp for icons, translations, and integration platforms every time to split the top level components from the platforms. Keep track of the top level components in a seperate set so avoid having to do the setcomp every time. * remove impossible paths * remove unused code * preen * preen * fix * coverage and fixes * Update homeassistant/core.py * Update homeassistant/core.py * Update tests/test_core.py
This commit is contained in:
@@ -3411,3 +3411,20 @@ async def test_async_listen_with_run_immediately_deprecated(
|
||||
f"Detected code that calls `{method}` with run_immediately, which is "
|
||||
"deprecated and will be removed in Home Assistant 2025.5."
|
||||
) in caplog.text
|
||||
|
||||
|
||||
async def test_top_level_components(hass: HomeAssistant) -> None:
|
||||
"""Test top level components are updated when components change."""
|
||||
hass.config.components.add("homeassistant")
|
||||
assert hass.config.components == {"homeassistant"}
|
||||
assert hass.config.top_level_components == {"homeassistant"}
|
||||
hass.config.components.add("homeassistant.scene")
|
||||
assert hass.config.components == {"homeassistant", "homeassistant.scene"}
|
||||
assert hass.config.top_level_components == {"homeassistant"}
|
||||
hass.config.components.remove("homeassistant")
|
||||
assert hass.config.components == {"homeassistant.scene"}
|
||||
assert hass.config.top_level_components == set()
|
||||
with pytest.raises(ValueError):
|
||||
hass.config.components.remove("homeassistant.scene")
|
||||
with pytest.raises(NotImplementedError):
|
||||
hass.config.components.discard("homeassistant")
|
||||
|
||||
Reference in New Issue
Block a user