"""Tests for the AirGradient integration.""" from datetime import timedelta from unittest.mock import AsyncMock from freezegun.api import FrozenDateTimeFactory from syrupy import SnapshotAssertion from homeassistant.components.airgradient.const import DOMAIN from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr from . import setup_integration from tests.common import MockConfigEntry, async_fire_time_changed async def test_device_info( hass: HomeAssistant, snapshot: SnapshotAssertion, airgradient_devices: AsyncMock, mock_config_entry: MockConfigEntry, device_registry: dr.DeviceRegistry, ) -> None: """Test device registry integration.""" await setup_integration(hass, mock_config_entry) device_entry = device_registry.async_get_device( identifiers={(DOMAIN, mock_config_entry.unique_id)} ) assert device_entry is not None assert device_entry == snapshot async def test_new_firmware_version( hass: HomeAssistant, mock_airgradient_client: AsyncMock, mock_config_entry: MockConfigEntry, device_registry: dr.DeviceRegistry, freezer: FrozenDateTimeFactory, ) -> None: """Test device registry integration.""" await setup_integration(hass, mock_config_entry) device_entry = device_registry.async_get_device( identifiers={(DOMAIN, mock_config_entry.unique_id)} ) assert device_entry is not None assert device_entry.sw_version == "3.1.1" mock_airgradient_client.get_current_measures.return_value.firmware_version = "3.1.2" freezer.tick(timedelta(minutes=1)) async_fire_time_changed(hass) await hass.async_block_till_done() device_entry = device_registry.async_get_device( identifiers={(DOMAIN, mock_config_entry.unique_id)} ) assert device_entry is not None assert device_entry.sw_version == "3.1.2"