core/tests/components/kulersky/test_init.py

66 lines
1.9 KiB
Python

"""Tests for init methods."""
from homeassistant.components.kulersky.const import DOMAIN
from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import CONF_ADDRESS
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from tests.common import MockConfigEntry
async def test_migrate_entry(
hass: HomeAssistant,
) -> None:
"""Test migrate config entry from v1 to v2."""
mock_config_entry_v1 = MockConfigEntry(
version=1,
domain=DOMAIN,
title="KulerSky",
)
mock_config_entry_v1.add_to_hass(hass)
dev_reg = dr.async_get(hass)
# Create device registry entries for old integration
dev_reg.async_get_or_create(
config_entry_id=mock_config_entry_v1.entry_id,
identifiers={(DOMAIN, "AA:BB:CC:11:22:33")},
name="KuLight 1",
)
dev_reg.async_get_or_create(
config_entry_id=mock_config_entry_v1.entry_id,
identifiers={(DOMAIN, "AA:BB:CC:44:55:66")},
name="KuLight 2",
)
await hass.config_entries.async_setup(mock_config_entry_v1.entry_id)
await hass.async_block_till_done()
assert mock_config_entry_v1.state is ConfigEntryState.SETUP_RETRY
assert mock_config_entry_v1.version == 2
assert mock_config_entry_v1.unique_id == "AA:BB:CC:11:22:33"
assert mock_config_entry_v1.data == {
CONF_ADDRESS: "AA:BB:CC:11:22:33",
}
async def test_migrate_entry_no_devices_found(
hass: HomeAssistant,
) -> None:
"""Test migrate config entry from v1 to v2."""
mock_config_entry_v1 = MockConfigEntry(
version=1,
domain=DOMAIN,
title="KulerSky",
)
mock_config_entry_v1.add_to_hass(hass)
await hass.config_entries.async_setup(mock_config_entry_v1.entry_id)
await hass.async_block_till_done()
assert mock_config_entry_v1.state is ConfigEntryState.MIGRATION_ERROR
assert mock_config_entry_v1.version == 1