diff --git a/supervisor/api/supervisor.py b/supervisor/api/supervisor.py index 7d3a3e45c..389a70e92 100644 --- a/supervisor/api/supervisor.py +++ b/supervisor/api/supervisor.py @@ -208,9 +208,12 @@ class APISupervisor(CoreSysAttributes): return asyncio.shield( asyncio.wait( [ - self.sys_updater.reload(), - self.sys_homeassistant.secrets.reload(), - self.sys_resolution.evaluate.evaluate_system(), + self.sys_create_task(coro) + for coro in [ + self.sys_updater.reload(), + self.sys_homeassistant.secrets.reload(), + self.sys_resolution.evaluate.evaluate_system(), + ] ] ) ) diff --git a/tests/api/test_supervisor.py b/tests/api/test_supervisor.py index 661e14858..81dcc6eba 100644 --- a/tests/api/test_supervisor.py +++ b/tests/api/test_supervisor.py @@ -160,3 +160,9 @@ async def test_api_supervisor_logs(api_client: TestClient, docker_logs: MagicMoc "\x1b[36m22-10-11 14:04:23 DEBUG (MainThread) [supervisor.utils.dbus] D-Bus call - org.freedesktop.DBus.Properties.call_get_all on /io/hass/os\x1b[0m", "\x1b[36m22-10-11 14:04:23 DEBUG (MainThread) [supervisor.utils.dbus] D-Bus call - org.freedesktop.DBus.Properties.call_get_all on /io/hass/os/AppArmor\x1b[0m", ] + + +async def test_api_supervisor_reload(api_client: TestClient): + """Test supervisor reload.""" + resp = await api_client.post("/supervisor/reload") + assert resp.status == 200 diff --git a/tests/homeassistant/test_module.py b/tests/homeassistant/test_module.py index 090229771..a92637547 100644 --- a/tests/homeassistant/test_module.py +++ b/tests/homeassistant/test_module.py @@ -5,6 +5,7 @@ from unittest.mock import patch from supervisor.coresys import CoreSys from supervisor.docker.interface import DockerInterface +from supervisor.homeassistant.secrets import HomeAssistantSecrets async def test_load(coresys: CoreSys, tmp_supervisor_data: Path): @@ -12,7 +13,12 @@ async def test_load(coresys: CoreSys, tmp_supervisor_data: Path): with open(tmp_supervisor_data / "homeassistant" / "secrets.yaml", "w") as secrets: secrets.write("hello: world\n") - with patch.object(DockerInterface, "attach") as attach: + # Unwrap read_secrets to prevent throttling between tests + with patch.object(DockerInterface, "attach") as attach, patch.object( + HomeAssistantSecrets, + "_read_secrets", + new=HomeAssistantSecrets._read_secrets.__wrapped__, + ): await coresys.homeassistant.load() attach.assert_called_once()