From 941239262a2bde85347363a318cbea9410ad2786 Mon Sep 17 00:00:00 2001 From: G Johansson Date: Sat, 4 Nov 2023 19:24:34 +0100 Subject: [PATCH] Remove platform YAML from LastFM (#103391) --- .../components/lastfm/config_flow.py | 19 ------- homeassistant/components/lastfm/sensor.py | 49 ++----------------- tests/components/lastfm/test_config_flow.py | 43 +--------------- tests/components/lastfm/test_sensor.py | 25 ---------- 4 files changed, 4 insertions(+), 132 deletions(-) diff --git a/homeassistant/components/lastfm/config_flow.py b/homeassistant/components/lastfm/config_flow.py index 54406a6e03b..4ff809b56d0 100644 --- a/homeassistant/components/lastfm/config_flow.py +++ b/homeassistant/components/lastfm/config_flow.py @@ -19,7 +19,6 @@ from homeassistant.helpers.selector import ( SelectSelector, SelectSelectorConfig, ) -from homeassistant.helpers.typing import ConfigType from .const import CONF_MAIN_USER, CONF_USERS, DOMAIN @@ -154,24 +153,6 @@ class LastFmConfigFlowHandler(ConfigFlow, domain=DOMAIN): ), ) - async def async_step_import(self, import_config: ConfigType) -> FlowResult: - """Import config from yaml.""" - for entry in self._async_current_entries(): - if entry.options[CONF_API_KEY] == import_config[CONF_API_KEY]: - return self.async_abort(reason="already_configured") - users, _ = validate_lastfm_users( - import_config[CONF_API_KEY], import_config[CONF_USERS] - ) - return self.async_create_entry( - title="LastFM", - data={}, - options={ - CONF_API_KEY: import_config[CONF_API_KEY], - CONF_MAIN_USER: None, - CONF_USERS: users, - }, - ) - class LastFmOptionsFlowHandler(OptionsFlowWithConfigEntry): """LastFm Options flow handler.""" diff --git a/homeassistant/components/lastfm/sensor.py b/homeassistant/components/lastfm/sensor.py index 40d6521bdc9..2b022a00107 100644 --- a/homeassistant/components/lastfm/sensor.py +++ b/homeassistant/components/lastfm/sensor.py @@ -4,17 +4,11 @@ from __future__ import annotations import hashlib from typing import Any -import voluptuous as vol - -from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity -from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry -from homeassistant.const import CONF_API_KEY -from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant -import homeassistant.helpers.config_validation as cv +from homeassistant.components.sensor import SensorEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback -from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue -from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import ( @@ -28,43 +22,6 @@ from .const import ( ) from .coordinator import LastFMDataUpdateCoordinator, LastFMUserData -PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( - { - vol.Required(CONF_API_KEY): cv.string, - vol.Required(CONF_USERS, default=[]): vol.All(cv.ensure_list, [cv.string]), - } -) - - -async def async_setup_platform( - hass: HomeAssistant, - config: ConfigType, - async_add_entities: AddEntitiesCallback, - discovery_info: DiscoveryInfoType | None = None, -) -> None: - """Set up the Last.fm sensor platform from yaml.""" - - async_create_issue( - hass, - HOMEASSISTANT_DOMAIN, - f"deprecated_yaml_{DOMAIN}", - breaks_in_ha_version="2023.12.0", - is_fixable=False, - issue_domain=DOMAIN, - severity=IssueSeverity.WARNING, - translation_key="deprecated_yaml", - translation_placeholders={ - "domain": DOMAIN, - "integration_title": "LastFM", - }, - ) - - hass.async_create_task( - hass.config_entries.flow.async_init( - DOMAIN, context={"source": SOURCE_IMPORT}, data=config - ) - ) - async def async_setup_entry( hass: HomeAssistant, diff --git a/tests/components/lastfm/test_config_flow.py b/tests/components/lastfm/test_config_flow.py index 07e96afaced..8a2c556a8d0 100644 --- a/tests/components/lastfm/test_config_flow.py +++ b/tests/components/lastfm/test_config_flow.py @@ -11,10 +11,9 @@ from homeassistant.components.lastfm.const import ( DEFAULT_NAME, DOMAIN, ) -from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_USER +from homeassistant.config_entries import SOURCE_USER from homeassistant.const import CONF_API_KEY from homeassistant.core import HomeAssistant -from homeassistant.data_entry_flow import FlowResultType from . import ( API_KEY, @@ -22,7 +21,6 @@ from . import ( CONF_FRIENDS_DATA, CONF_USER_DATA, USERNAME_1, - USERNAME_2, MockUser, patch_setup_entry, ) @@ -158,45 +156,6 @@ async def test_flow_friends_no_friends( assert len(result["data_schema"].schema[CONF_USERS].config["options"]) == 0 -async def test_import_flow_success(hass: HomeAssistant, default_user: MockUser) -> None: - """Test import flow.""" - with patch("pylast.User", return_value=default_user): - result = await hass.config_entries.flow.async_init( - DOMAIN, - context={"source": SOURCE_IMPORT}, - data={CONF_API_KEY: API_KEY, CONF_USERS: [USERNAME_1, USERNAME_2]}, - ) - await hass.async_block_till_done() - assert result["type"] == data_entry_flow.FlowResultType.CREATE_ENTRY - assert result["title"] == "LastFM" - assert result["options"] == { - "api_key": "asdasdasdasdasd", - "main_user": None, - "users": ["testaccount1", "testaccount2"], - } - - -async def test_import_flow_already_exist( - hass: HomeAssistant, - setup_integration: ComponentSetup, - imported_config_entry: MockConfigEntry, - default_user: MockUser, -) -> None: - """Test import of yaml already exist.""" - await setup_integration(imported_config_entry, default_user) - - with patch("pylast.User", return_value=default_user): - result = await hass.config_entries.flow.async_init( - DOMAIN, - context={"source": SOURCE_IMPORT}, - data=CONF_DATA, - ) - await hass.async_block_till_done() - - assert result["type"] == FlowResultType.ABORT - assert result["reason"] == "already_configured" - - async def test_options_flow( hass: HomeAssistant, setup_integration: ComponentSetup, diff --git a/tests/components/lastfm/test_sensor.py b/tests/components/lastfm/test_sensor.py index f5723215e2a..f33419dd8ea 100644 --- a/tests/components/lastfm/test_sensor.py +++ b/tests/components/lastfm/test_sensor.py @@ -1,39 +1,14 @@ """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"),