mirror of
https://github.com/home-assistant/core.git
synced 2025-07-10 14:57:09 +00:00
Clean up import/migration repair in LaMetric (#89153)
This commit is contained in:
parent
34f8e94ca9
commit
bfadc8453d
@ -1,50 +1,23 @@
|
|||||||
"""Support for LaMetric time."""
|
"""Support for LaMetric time."""
|
||||||
import voluptuous as vol
|
|
||||||
|
|
||||||
from homeassistant.components import notify as hass_notify
|
from homeassistant.components import notify as hass_notify
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET, CONF_NAME, Platform
|
from homeassistant.const import CONF_NAME, Platform
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import discovery
|
from homeassistant.helpers import discovery
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
|
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
|
|
||||||
from .const import DOMAIN, PLATFORMS
|
from .const import DOMAIN, PLATFORMS
|
||||||
from .coordinator import LaMetricDataUpdateCoordinator
|
from .coordinator import LaMetricDataUpdateCoordinator
|
||||||
from .services import async_setup_services
|
from .services import async_setup_services
|
||||||
|
|
||||||
CONFIG_SCHEMA = vol.Schema(
|
CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False)
|
||||||
vol.All(
|
|
||||||
cv.deprecated(DOMAIN),
|
|
||||||
{
|
|
||||||
DOMAIN: vol.Schema(
|
|
||||||
{
|
|
||||||
vol.Required(CONF_CLIENT_ID): cv.string,
|
|
||||||
vol.Required(CONF_CLIENT_SECRET): cv.string,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
},
|
|
||||||
),
|
|
||||||
extra=vol.ALLOW_EXTRA,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
||||||
"""Set up the LaMetric integration."""
|
"""Set up the LaMetric integration."""
|
||||||
async_setup_services(hass)
|
async_setup_services(hass)
|
||||||
hass.data[DOMAIN] = {"hass_config": config}
|
hass.data[DOMAIN] = {"hass_config": config}
|
||||||
if DOMAIN in config:
|
|
||||||
async_create_issue(
|
|
||||||
hass,
|
|
||||||
DOMAIN,
|
|
||||||
"manual_migration",
|
|
||||||
breaks_in_ha_version="2022.9.0",
|
|
||||||
is_fixable=False,
|
|
||||||
severity=IssueSeverity.ERROR,
|
|
||||||
translation_key="manual_migration",
|
|
||||||
)
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,12 +44,6 @@
|
|||||||
"unknown": "[%key:common::config_flow::error::unknown%]"
|
"unknown": "[%key:common::config_flow::error::unknown%]"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"issues": {
|
|
||||||
"manual_migration": {
|
|
||||||
"title": "Manual migration required for LaMetric",
|
|
||||||
"description": "The LaMetric integration has been modernized: It is now configured and set up via the user interface and the communcations are now local.\n\nUnfortunately, there is no automatic migration path possible and thus requires you to re-set up your LaMetric with Home Assistant. Please consult the Home Assistant LaMetric integration documentation on how to set it up.\n\nRemove the old LaMetric YAML configuration from your configuration.yaml file and restart Home Assistant to fix this issue."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"entity": {
|
"entity": {
|
||||||
"select": {
|
"select": {
|
||||||
"brightness_mode": {
|
"brightness_mode": {
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
"""Tests for the LaMetric integration."""
|
"""Tests for the LaMetric integration."""
|
||||||
from collections.abc import Awaitable, Callable
|
|
||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
from aiohttp import ClientWebSocketResponse
|
|
||||||
from demetriek import (
|
from demetriek import (
|
||||||
LaMetricAuthenticationError,
|
LaMetricAuthenticationError,
|
||||||
LaMetricConnectionError,
|
LaMetricConnectionError,
|
||||||
@ -12,12 +10,9 @@ import pytest
|
|||||||
|
|
||||||
from homeassistant.components.lametric.const import DOMAIN
|
from homeassistant.components.lametric.const import DOMAIN
|
||||||
from homeassistant.config_entries import SOURCE_REAUTH, ConfigEntryState
|
from homeassistant.config_entries import SOURCE_REAUTH, ConfigEntryState
|
||||||
from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.setup import async_setup_component
|
|
||||||
|
|
||||||
from tests.common import MockConfigEntry
|
from tests.common import MockConfigEntry
|
||||||
from tests.components.repairs import get_repairs
|
|
||||||
|
|
||||||
|
|
||||||
async def test_load_unload_config_entry(
|
async def test_load_unload_config_entry(
|
||||||
@ -59,23 +54,6 @@ async def test_config_entry_not_ready(
|
|||||||
assert mock_config_entry.state is ConfigEntryState.SETUP_RETRY
|
assert mock_config_entry.state is ConfigEntryState.SETUP_RETRY
|
||||||
|
|
||||||
|
|
||||||
async def test_yaml_config_raises_repairs(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
hass_ws_client: Callable[[HomeAssistant], Awaitable[ClientWebSocketResponse]],
|
|
||||||
caplog: pytest.LogCaptureFixture,
|
|
||||||
) -> None:
|
|
||||||
"""Test that YAML configuration raises an repairs issue."""
|
|
||||||
await async_setup_component(
|
|
||||||
hass, DOMAIN, {DOMAIN: {CONF_CLIENT_ID: "foo", CONF_CLIENT_SECRET: "bar"}}
|
|
||||||
)
|
|
||||||
|
|
||||||
assert "The 'lametric' option is deprecated" in caplog.text
|
|
||||||
|
|
||||||
issues = await get_repairs(hass, hass_ws_client)
|
|
||||||
assert len(issues) == 1
|
|
||||||
assert issues[0]["issue_id"] == "manual_migration"
|
|
||||||
|
|
||||||
|
|
||||||
async def test_config_entry_authentication_failed(
|
async def test_config_entry_authentication_failed(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_config_entry: MockConfigEntry,
|
mock_config_entry: MockConfigEntry,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user