"""Tests for the lastfm sensor.""" from unittest.mock import patch import pytest from syrupy.assertion import SnapshotAssertion from homeassistant.components.lastfm.const import CONF_USERS, DOMAIN from homeassistant.config_entries import ConfigEntryState from homeassistant.const import CONF_API_KEY, CONF_PLATFORM, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import issue_registry as ir from homeassistant.setup import async_setup_component from . import API_KEY, USERNAME_1, MockUser from .conftest import ComponentSetup from tests.common import MockConfigEntry LEGACY_CONFIG = { Platform.SENSOR: [ {CONF_PLATFORM: DOMAIN, CONF_API_KEY: API_KEY, CONF_USERS: [USERNAME_1]} ] } async def test_legacy_migration(hass: HomeAssistant) -> None: """Test migration from yaml to config flow.""" with patch("pylast.User", return_value=MockUser()): assert await async_setup_component(hass, Platform.SENSOR, LEGACY_CONFIG) await hass.async_block_till_done() entries = hass.config_entries.async_entries(DOMAIN) assert len(entries) == 1 assert entries[0].state is ConfigEntryState.LOADED issue_registry = ir.async_get(hass) assert len(issue_registry.issues) == 1 @pytest.mark.parametrize( ("fixture"), [ ("not_found_user"), ("first_time_user"), ("default_user"), ], ) async def test_sensors( hass: HomeAssistant, setup_integration: ComponentSetup, config_entry: MockConfigEntry, snapshot: SnapshotAssertion, fixture: str, request: pytest.FixtureRequest, ) -> None: """Test sensors.""" user = request.getfixturevalue(fixture) await setup_integration(config_entry, user) entity_id = "sensor.lastfm_testaccount1" state = hass.states.get(entity_id) assert state == snapshot