core/tests/components/lastfm/test_sensor.py

63 lines
1.8 KiB
Python

"""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