Change energenie key to one without dashes (#178931)

This commit is contained in:
Joost Lekkerkerker
2026-08-12 16:26:12 +02:00
committed by GitHub
parent 4035e10a9c
commit 22df45b620
5 changed files with 42 additions and 1 deletions
@@ -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