diff --git a/tests/components/iometer/test_init.py b/tests/components/iometer/test_init.py index 9d8eadc5079..68f75384d40 100644 --- a/tests/components/iometer/test_init.py +++ b/tests/components/iometer/test_init.py @@ -1,13 +1,17 @@ -"""Tests for the AirGradient integration.""" +"""Tests for the IOmeter integration.""" from datetime import timedelta from unittest.mock import AsyncMock from freezegun.api import FrozenDateTimeFactory +from iometer import IOmeterConnectionError +import pytest +from homeassistant.components.iometer import async_setup_entry from homeassistant.components.iometer.const import DOMAIN from homeassistant.const import Platform from homeassistant.core import HomeAssistant +from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.helpers import device_registry as dr from . import setup_platform @@ -23,7 +27,8 @@ async def test_new_firmware_version( freezer: FrozenDateTimeFactory, ) -> None: """Test device registry integration.""" - # await setup_integration(hass, mock_config_entry) + assert mock_config_entry.unique_id is not None + await setup_platform(hass, mock_config_entry, [Platform.SENSOR]) device_entry = device_registry.async_get_device( identifiers={(DOMAIN, mock_config_entry.unique_id)} @@ -42,3 +47,21 @@ async def test_new_firmware_version( ) assert device_entry is not None assert device_entry.sw_version == "build-62/build-69" + + +async def test_async_setup_entry_connection_error( + hass: HomeAssistant, + mock_iometer_client: AsyncMock, + mock_config_entry: MockConfigEntry, +) -> None: + """Test async_setup_entry raises ConfigEntryNotReady on connection error.""" + + mock_config_entry.add_to_hass(hass) + mock_iometer_client.get_current_status.side_effect = IOmeterConnectionError( + "cannot connect" + ) + + with pytest.raises(ConfigEntryNotReady): + await async_setup_entry(hass, mock_config_entry) + + assert mock_iometer_client.get_current_status.await_count == 1