63 lines
1.8 KiB
Python
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
|