diff --git a/supervisor/addons/addon.py b/supervisor/addons/addon.py index 32222d7d9..539a716fa 100644 --- a/supervisor/addons/addon.py +++ b/supervisor/addons/addon.py @@ -184,6 +184,7 @@ class Addon(AddonModel): ) ) + await self._check_ingress_port() with suppress(DockerError): await self.instance.attach(version=self.version) @@ -640,8 +641,6 @@ class Addon(AddonModel): self.sys_addons.data.uninstall(self) raise AddonsError() from err - await self._check_ingress_port() - # Add to addon manager self.sys_addons.local[self.slug] = self @@ -769,7 +768,6 @@ class Addon(AddonModel): raise AddonsError() from err self.sys_addons.data.update(self.addon_store) - await self._check_ingress_port() _LOGGER.info("Add-on '%s' successfully rebuilt", self.slug) finally: diff --git a/tests/addons/test_addon.py b/tests/addons/test_addon.py index 112bc445e..496eb5fd0 100644 --- a/tests/addons/test_addon.py +++ b/tests/addons/test_addon.py @@ -683,3 +683,16 @@ async def test_local_example_start( await install_addon_example.start() assert addon_config_dir.is_dir() + + +async def test_local_example_ingress_port_set( + coresys: CoreSys, + container: MagicMock, + tmp_supervisor_data: Path, + install_addon_example: Addon, +): + """Test start of an addon.""" + install_addon_example.path_data.mkdir() + await install_addon_example.load() + + assert install_addon_example.ingress_port != 0 diff --git a/tests/fixtures/addons/local/example/config.yaml b/tests/fixtures/addons/local/example/config.yaml index dc40ddd5c..0606593e5 100644 --- a/tests/fixtures/addons/local/example/config.yaml +++ b/tests/fixtures/addons/local/example/config.yaml @@ -18,3 +18,5 @@ options: message: "Hello world..." schema: message: "str?" +ingress: true +ingress_port: 0