diff --git a/.coveragerc b/.coveragerc index 8afd9142292..48e4561e54e 100644 --- a/.coveragerc +++ b/.coveragerc @@ -728,7 +728,6 @@ omit = homeassistant/components/mastodon/notify.py homeassistant/components/matrix/* homeassistant/components/matter/__init__.py - homeassistant/components/matter/adapter.py homeassistant/components/matter/entity.py homeassistant/components/meater/__init__.py homeassistant/components/meater/const.py diff --git a/homeassistant/components/matter/adapter.py b/homeassistant/components/matter/adapter.py index c2ad11cb10f..08ca80dbb0e 100644 --- a/homeassistant/components/matter/adapter.py +++ b/homeassistant/components/matter/adapter.py @@ -1,8 +1,6 @@ """Matter to Home Assistant adapter.""" from __future__ import annotations -import asyncio -import logging from typing import TYPE_CHECKING from chip.clusters import Objects as all_clusters @@ -14,7 +12,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import DOMAIN +from .const import DOMAIN, LOGGER from .device_platform import DEVICE_PLATFORM if TYPE_CHECKING: @@ -35,27 +33,22 @@ class MatterAdapter: self.matter_client = matter_client self.hass = hass self.config_entry = config_entry - self.logger = logging.getLogger(__name__) self.platform_handlers: dict[Platform, AddEntitiesCallback] = {} - self._platforms_set_up = asyncio.Event() def register_platform_handler( self, platform: Platform, add_entities: AddEntitiesCallback ) -> None: """Register a platform handler.""" self.platform_handlers[platform] = add_entities - if len(self.platform_handlers) == len(DEVICE_PLATFORM): - self._platforms_set_up.set() async def setup_nodes(self) -> None: """Set up all existing nodes.""" - await self._platforms_set_up.wait() for node in await self.matter_client.get_nodes(): - await self._setup_node(node) + self._setup_node(node) - async def _setup_node(self, node: MatterNode) -> None: + def _setup_node(self, node: MatterNode) -> None: """Set up an node.""" - self.logger.debug("Setting up entities for node %s", node.node_id) + LOGGER.debug("Setting up entities for node %s", node.node_id) bridge_unique_id: str | None = None @@ -115,7 +108,7 @@ class MatterAdapter: entities = [] for entity_description in entity_descriptions: - self.logger.debug( + LOGGER.debug( "Creating %s entity for %s (%s)", platform, instance.device_type.__name__, @@ -134,7 +127,7 @@ class MatterAdapter: created = True if not created: - self.logger.warning( + LOGGER.warning( "Found unsupported device %s (%s)", type(instance).__name__, hex(instance.device_type.device_type), diff --git a/tests/components/matter/test_adapter.py b/tests/components/matter/test_adapter.py index 33a439d2b09..96d28839be9 100644 --- a/tests/components/matter/test_adapter.py +++ b/tests/components/matter/test_adapter.py @@ -1,7 +1,7 @@ """Test the adapter.""" from __future__ import annotations -from typing import Any +from unittest.mock import MagicMock import pytest @@ -11,36 +11,40 @@ from homeassistant.helpers import device_registry as dr from .common import setup_integration_with_node_fixture -# TEMP: Tests need to be fixed -pytestmark = pytest.mark.skip("all tests still WIP") - async def test_device_registry_single_node_device( - hass: HomeAssistant, hass_storage: dict[str, Any] + hass: HomeAssistant, + matter_client: MagicMock, ) -> None: """Test bridge devices are set up correctly with via_device.""" await setup_integration_with_node_fixture( - hass, hass_storage, "lighting-example-app" + hass, + "onoff-light", + matter_client, ) dev_reg = dr.async_get(hass) - entry = dev_reg.async_get_device({(DOMAIN, "BE8F70AA40DDAE41")}) + entry = dev_reg.async_get_device({(DOMAIN, "mock-onoff-light")}) assert entry is not None - assert entry.name == "My Cool Light" + assert entry.name == "Mock OnOff Light" assert entry.manufacturer == "Nabu Casa" - assert entry.model == "M5STAMP Lighting App" + assert entry.model == "Mock Light" assert entry.hw_version == "v1.0" - assert entry.sw_version == "55ab764bea" + assert entry.sw_version == "v1.0" +@pytest.mark.skip("Waiting for a new test fixture") async def test_device_registry_bridge( - hass: HomeAssistant, hass_storage: dict[str, Any] + hass: HomeAssistant, + matter_client: MagicMock, ) -> None: """Test bridge devices are set up correctly with via_device.""" await setup_integration_with_node_fixture( - hass, hass_storage, "fake-bridge-two-light" + hass, + "fake-bridge-two-light", + matter_client, ) dev_reg = dr.async_get(hass)