Add support for importing integrations in the executor (#111336)

* Add support for pre-imports at setup time

alternative solution to #111331

* refactor

* refactor

* refactor

* mark >1.0s integrations

* no point in executor if already loaded

* no point in executor if already loaded

* cleanup

* cleanup

* two more

* one more

* analytics loads a lot more integrations

* cloud

* debug

* psutil, hardwre

* try zha

* Update homeassistant/setup.py

* await

* comments

* coverage

* coverage

* coverage

* move logic to loader

* move logic to loader

* preserve comments
This commit is contained in:
J. Nick Koston
2024-02-26 09:49:43 -10:00
committed by GitHub
parent 75e59167de
commit 4ea1c5cc3c
25 changed files with 278 additions and 9 deletions

View File

@ -813,3 +813,12 @@ async def test_loading_component_loads_translations(hass: HomeAssistant) -> None
assert await setup.async_setup_component(hass, "comp", {})
assert mock_setup.called
assert translation.async_translations_loaded(hass, {"comp"}) is True
async def test_importing_integration_in_executor(
hass: HomeAssistant, enable_custom_integrations: None
) -> None:
"""Test we can import an integration in an executor."""
assert await setup.async_setup_component(hass, "test_package_loaded_executor", {})
assert await setup.async_setup_component(hass, "test_package_loaded_executor", {})
await hass.async_block_till_done()