77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
"""Tests for the SABnzbd Integration."""
|
|
from unittest.mock import patch
|
|
|
|
from homeassistant.components.sabnzbd import DEFAULT_NAME, DOMAIN, OLD_SENSOR_KEYS
|
|
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
|
from homeassistant.const import CONF_API_KEY, CONF_NAME, CONF_URL
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
MOCK_ENTRY_ID = "mock_entry_id"
|
|
|
|
MOCK_UNIQUE_ID = "someuniqueid"
|
|
|
|
MOCK_DEVICE_ID = "somedeviceid"
|
|
|
|
MOCK_DATA_VERSION_1 = {
|
|
CONF_API_KEY: "api_key",
|
|
CONF_URL: "http://127.0.0.1:8080",
|
|
CONF_NAME: "name",
|
|
}
|
|
|
|
MOCK_ENTRY_VERSION_1 = MockConfigEntry(
|
|
domain=DOMAIN, data=MOCK_DATA_VERSION_1, entry_id=MOCK_ENTRY_ID, version=1
|
|
)
|
|
|
|
|
|
async def test_unique_id_migrate(
|
|
hass: HomeAssistant,
|
|
device_registry: dr.DeviceRegistry,
|
|
entity_registry: er.EntityRegistry,
|
|
) -> None:
|
|
"""Test that config flow entry is migrated correctly."""
|
|
# Start with the config entry at Version 1.
|
|
mock_entry = MOCK_ENTRY_VERSION_1
|
|
mock_entry.add_to_hass(hass)
|
|
|
|
mock_d_entry = device_registry.async_get_or_create(
|
|
config_entry_id=mock_entry.entry_id,
|
|
identifiers={(DOMAIN, DOMAIN)},
|
|
name=DEFAULT_NAME,
|
|
entry_type=dr.DeviceEntryType.SERVICE,
|
|
)
|
|
|
|
entity_id_sensor_key = []
|
|
|
|
for sensor_key in OLD_SENSOR_KEYS:
|
|
mock_entity_id = f"{SENSOR_DOMAIN}.{DOMAIN}_{sensor_key}"
|
|
entity_registry.async_get_or_create(
|
|
SENSOR_DOMAIN,
|
|
DOMAIN,
|
|
unique_id=sensor_key,
|
|
config_entry=mock_entry,
|
|
device_id=mock_d_entry.id,
|
|
)
|
|
entity = entity_registry.async_get(mock_entity_id)
|
|
assert entity.entity_id == mock_entity_id
|
|
assert entity.unique_id == sensor_key
|
|
entity_id_sensor_key.append((mock_entity_id, sensor_key))
|
|
|
|
with patch(
|
|
"homeassistant.components.sabnzbd.sab.SabnzbdApi.check_available",
|
|
return_value=True,
|
|
):
|
|
await hass.config_entries.async_setup(mock_entry.entry_id)
|
|
|
|
await hass.async_block_till_done()
|
|
|
|
for mock_entity_id, sensor_key in entity_id_sensor_key:
|
|
entity = entity_registry.async_get(mock_entity_id)
|
|
assert entity.unique_id == f"{MOCK_ENTRY_ID}_{sensor_key}"
|
|
|
|
assert device_registry.async_get(mock_d_entry.id).identifiers == {
|
|
(DOMAIN, MOCK_ENTRY_ID)
|
|
}
|