mirror of
https://github.com/home-assistant/core.git
synced 2026-08-24 10:13:52 -05:00
Change energenie key to one without dashes (#178931)
This commit is contained in:
@@ -15,6 +15,16 @@ PLATFORMS = [Platform.SWITCH]
|
||||
type EnergenieConfigEntry = ConfigEntry[PowerStripUSB]
|
||||
|
||||
|
||||
async def async_migrate_entry(hass: HomeAssistant, entry: EnergenieConfigEntry) -> bool:
|
||||
"""Migrate old config entry."""
|
||||
if entry.version == 1:
|
||||
new_data = {**entry.data}
|
||||
new_data[CONF_DEVICE_API_ID] = new_data.pop("api-device-id")
|
||||
hass.config_entries.async_update_entry(entry, data=new_data, version=2)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
async def async_setup_entry(hass: HomeAssistant, entry: EnergenieConfigEntry) -> bool:
|
||||
"""Set up Energenie Power Sockets."""
|
||||
try:
|
||||
|
||||
@@ -14,6 +14,8 @@ from .const import CONF_DEVICE_API_ID, DOMAIN, LOGGER
|
||||
class EGPSConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||
"""Handle the config flow for EGPS devices."""
|
||||
|
||||
VERSION = 2
|
||||
|
||||
@override
|
||||
async def async_step_user(
|
||||
self, user_input: dict[str, Any] | None = None
|
||||
|
||||
@@ -4,5 +4,5 @@ import logging
|
||||
|
||||
LOGGER = logging.getLogger(__package__)
|
||||
|
||||
CONF_DEVICE_API_ID = "api-device-id"
|
||||
CONF_DEVICE_API_ID = "device"
|
||||
DOMAIN = "energenie_power_sockets"
|
||||
|
||||
@@ -32,6 +32,7 @@ def valid_config_entry() -> MockConfigEntry:
|
||||
"""Return a valid egps config entry."""
|
||||
return MockConfigEntry(
|
||||
domain=DOMAIN,
|
||||
version=2,
|
||||
data=DEMO_CONFIG_DATA,
|
||||
unique_id=DEMO_CONFIG_DATA[CONF_DEVICE_API_ID],
|
||||
)
|
||||
|
||||
@@ -4,9 +4,15 @@ from unittest.mock import MagicMock
|
||||
|
||||
from pyegps.exceptions import UsbError
|
||||
|
||||
from homeassistant.components.energenie_power_sockets.const import (
|
||||
CONF_DEVICE_API_ID,
|
||||
DOMAIN,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntryState
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from .conftest import DEMO_CONFIG_DATA
|
||||
|
||||
from tests.common import MockConfigEntry
|
||||
|
||||
|
||||
@@ -59,3 +65,25 @@ async def test_usb_error(
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert valid_config_entry.state is ConfigEntryState.SETUP_ERROR
|
||||
|
||||
|
||||
async def test_migrate_entry(
|
||||
hass: HomeAssistant,
|
||||
mock_get_device: MagicMock,
|
||||
) -> None:
|
||||
"""Test migrating a version 1 config entry to version 2."""
|
||||
entry = MockConfigEntry(
|
||||
domain=DOMAIN,
|
||||
version=1,
|
||||
data={"api-device-id": DEMO_CONFIG_DATA[CONF_DEVICE_API_ID]},
|
||||
unique_id=DEMO_CONFIG_DATA[CONF_DEVICE_API_ID],
|
||||
)
|
||||
entry.add_to_hass(hass)
|
||||
|
||||
assert await hass.config_entries.async_setup(entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert entry.version == 2
|
||||
assert "api-device-id" not in entry.data
|
||||
assert entry.data[CONF_DEVICE_API_ID] == DEMO_CONFIG_DATA[CONF_DEVICE_API_ID]
|
||||
assert entry.state is ConfigEntryState.LOADED
|
||||
|
||||
Reference in New Issue
Block a user