Use entity & device registry mocks instead of hass.helpers in airthings_ble tests (#114520)

This commit is contained in:
Jan-Philipp Benecke 2024-03-31 09:08:07 +02:00 committed by GitHub
parent 5038a035bd
commit 6e3e09f2c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 25 deletions

View File

@ -12,7 +12,8 @@ from airthings_ble import (
from homeassistant.components.airthings_ble.const import DOMAIN from homeassistant.components.airthings_ble.const import DOMAIN
from homeassistant.components.bluetooth.models import BluetoothServiceInfoBleak from homeassistant.components.bluetooth.models import BluetoothServiceInfoBleak
from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH from homeassistant.config_entries import ConfigEntry
from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH, DeviceRegistry
from tests.common import MockConfigEntry, MockEntity from tests.common import MockConfigEntry, MockEntity
from tests.components.bluetooth import generate_advertisement_data, generate_ble_device from tests.components.bluetooth import generate_advertisement_data, generate_ble_device
@ -232,9 +233,8 @@ def create_entry(hass):
return entry return entry
def create_device(hass, entry): def create_device(entry: ConfigEntry, device_registry: DeviceRegistry):
"""Create a device for the given entry.""" """Create a device for the given entry."""
device_registry = hass.helpers.device_registry.async_get(hass)
device = device_registry.async_get_or_create( device = device_registry.async_get_or_create(
config_entry_id=entry.entry_id, config_entry_id=entry.entry_id,
connections={(CONNECTION_BLUETOOTH, WAVE_SERVICE_INFO.address)}, connections={(CONNECTION_BLUETOOTH, WAVE_SERVICE_INFO.address)},

View File

@ -5,6 +5,7 @@ import logging
from homeassistant.components.airthings_ble.const import DOMAIN from homeassistant.components.airthings_ble.const import DOMAIN
from homeassistant.const import Platform from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from tests.components.airthings_ble import ( from tests.components.airthings_ble import (
CO2_V1, CO2_V1,
@ -25,18 +26,20 @@ from tests.components.bluetooth import inject_bluetooth_service_info
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
async def test_migration_from_v1_to_v3_unique_id(hass: HomeAssistant): async def test_migration_from_v1_to_v3_unique_id(
hass: HomeAssistant,
entity_registry: er.EntityRegistry,
device_registry: dr.DeviceRegistry,
):
"""Verify that we can migrate from v1 (pre 2023.9.0) to the latest unique id format.""" """Verify that we can migrate from v1 (pre 2023.9.0) to the latest unique id format."""
entry = create_entry(hass) entry = create_entry(hass)
device = create_device(hass, entry) device = create_device(entry, device_registry)
assert entry is not None assert entry is not None
assert device is not None assert device is not None
new_unique_id = f"{WAVE_DEVICE_INFO.address}_temperature" new_unique_id = f"{WAVE_DEVICE_INFO.address}_temperature"
entity_registry = hass.helpers.entity_registry.async_get(hass)
sensor = entity_registry.async_get_or_create( sensor = entity_registry.async_get_or_create(
domain=DOMAIN, domain=DOMAIN,
platform=Platform.SENSOR, platform=Platform.SENSOR,
@ -64,18 +67,18 @@ async def test_migration_from_v1_to_v3_unique_id(hass: HomeAssistant):
assert entity_registry.async_get(sensor.entity_id).unique_id == new_unique_id assert entity_registry.async_get(sensor.entity_id).unique_id == new_unique_id
async def test_migration_from_v2_to_v3_unique_id(hass: HomeAssistant): async def test_migration_from_v2_to_v3_unique_id(
hass: HomeAssistant,
entity_registry: er.EntityRegistry,
device_registry: dr.DeviceRegistry,
):
"""Verify that we can migrate from v2 (introduced in 2023.9.0) to the latest unique id format.""" """Verify that we can migrate from v2 (introduced in 2023.9.0) to the latest unique id format."""
entry = create_entry(hass) entry = create_entry(hass)
device = create_device(hass, entry) device = create_device(entry, device_registry)
assert entry is not None assert entry is not None
assert device is not None assert device is not None
entity_registry = hass.helpers.entity_registry.async_get(hass)
await hass.async_block_till_done()
sensor = entity_registry.async_get_or_create( sensor = entity_registry.async_get_or_create(
domain=DOMAIN, domain=DOMAIN,
platform=Platform.SENSOR, platform=Platform.SENSOR,
@ -105,18 +108,18 @@ async def test_migration_from_v2_to_v3_unique_id(hass: HomeAssistant):
assert entity_registry.async_get(sensor.entity_id).unique_id == new_unique_id assert entity_registry.async_get(sensor.entity_id).unique_id == new_unique_id
async def test_migration_from_v1_and_v2_to_v3_unique_id(hass: HomeAssistant): async def test_migration_from_v1_and_v2_to_v3_unique_id(
hass: HomeAssistant,
entity_registry: er.EntityRegistry,
device_registry: dr.DeviceRegistry,
):
"""Test if migration works when we have both v1 (pre 2023.9.0) and v2 (introduced in 2023.9.0) unique ids.""" """Test if migration works when we have both v1 (pre 2023.9.0) and v2 (introduced in 2023.9.0) unique ids."""
entry = create_entry(hass) entry = create_entry(hass)
device = create_device(hass, entry) device = create_device(entry, device_registry)
assert entry is not None assert entry is not None
assert device is not None assert device is not None
entity_registry = hass.helpers.entity_registry.async_get(hass)
await hass.async_block_till_done()
v2 = entity_registry.async_get_or_create( v2 = entity_registry.async_get_or_create(
domain=DOMAIN, domain=DOMAIN,
platform=Platform.SENSOR, platform=Platform.SENSOR,
@ -155,18 +158,18 @@ async def test_migration_from_v1_and_v2_to_v3_unique_id(hass: HomeAssistant):
assert entity_registry.async_get(v2.entity_id).unique_id == CO2_V2.unique_id assert entity_registry.async_get(v2.entity_id).unique_id == CO2_V2.unique_id
async def test_migration_with_all_unique_ids(hass: HomeAssistant): async def test_migration_with_all_unique_ids(
hass: HomeAssistant,
entity_registry: er.EntityRegistry,
device_registry: dr.DeviceRegistry,
):
"""Test if migration works when we have all unique ids.""" """Test if migration works when we have all unique ids."""
entry = create_entry(hass) entry = create_entry(hass)
device = create_device(hass, entry) device = create_device(entry, device_registry)
assert entry is not None assert entry is not None
assert device is not None assert device is not None
entity_registry = hass.helpers.entity_registry.async_get(hass)
await hass.async_block_till_done()
v1 = entity_registry.async_get_or_create( v1 = entity_registry.async_get_or_create(
domain=DOMAIN, domain=DOMAIN,
platform=Platform.SENSOR, platform=Platform.SENSOR,