Use snapshot_platform helper in onewire tests (#135176)

* Use snapshot_platform helper in onewire tests

* Snapshot device registry
This commit is contained in:
epenet 2025-01-09 11:45:29 +01:00 committed by GitHub
parent 3ce4c47cfc
commit 8bfdbc173a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 5731 additions and 7593 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,673 @@
# serializer version: 1
# name: test_registry[05.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'05.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2405',
'model_id': None,
'name': '05.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[10.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'10.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18S20',
'model_id': None,
'name': '10.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[12.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'12.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2406',
'model_id': None,
'name': '12.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[1D.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'1D.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': <ANY>,
})
# ---
# name: test_registry[1F.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'1F.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2409',
'model_id': None,
'name': '1F.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[22.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'22.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1822',
'model_id': None,
'name': '22.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[26.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'26.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': '26.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[28.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'28.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[28.222222222222-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'28.222222222222',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[28.222222222223-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'28.222222222223',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222223',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[29.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'29.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2408',
'model_id': None,
'name': '29.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[30.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'30.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2760',
'model_id': None,
'name': '30.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[3A.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'3A.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2413',
'model_id': None,
'name': '3A.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[3B.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'3B.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1825',
'model_id': None,
'name': '3B.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[42.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'42.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS28EA00',
'model_id': None,
'name': '42.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[7E.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'7E.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0068',
'model_id': None,
'name': '7E.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[7E.222222222222-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'7E.222222222222',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0066',
'model_id': None,
'name': '7E.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[A6.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'A6.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': 'A6.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[EF.111111111111-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'EF.111111111111',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Hobby Boards',
'model': 'HobbyBoards_EF',
'model_id': None,
'name': 'EF.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[EF.111111111112-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'EF.111111111112',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_MOISTURE_METER',
'model_id': None,
'name': 'EF.111111111112',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---
# name: test_registry[EF.111111111113-entry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'onewire',
'EF.111111111113',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_HUB',
'model_id': None,
'name': 'EF.111111111113',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': None,
'via_device_id': None,
})
# ---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,11 +8,12 @@ from syrupy.assertion import SnapshotAssertion
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers import entity_registry as er
from . import setup_owproxy_mock_devices
from .const import MOCK_OWPROXY_DEVICES
from tests.common import MockConfigEntry
from tests.common import MockConfigEntry, snapshot_platform
@pytest.fixture(autouse=True)
@ -22,39 +23,16 @@ def override_platforms() -> Generator[None]:
yield
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_binary_sensors(
hass: HomeAssistant,
config_entry: MockConfigEntry,
owproxy: MagicMock,
device_id: str,
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test for 1-Wire binary sensors."""
setup_owproxy_mock_devices(owproxy, [device_id])
setup_owproxy_mock_devices(owproxy, MOCK_OWPROXY_DEVICES.keys())
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
# Ensure devices are correctly registered
device_entries = dr.async_entries_for_config_entry(
device_registry, config_entry.entry_id
)
assert device_entries == snapshot
# Ensure entities are correctly registered
entity_entries = er.async_entries_for_config_entry(
entity_registry, config_entry.entry_id
)
assert entity_entries == snapshot
setup_owproxy_mock_devices(owproxy, [device_id])
# Some entities are disabled, enable them and reload before checking states
for ent in entity_entries:
entity_registry.async_update_entity(ent.entity_id, disabled_by=None)
await hass.config_entries.async_reload(config_entry.entry_id)
await hass.async_block_till_done()
# Ensure entity states are correct
states = [hass.states.get(ent.entity_id) for ent in entity_entries]
assert states == snapshot
await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)

View File

@ -5,6 +5,7 @@ from unittest.mock import MagicMock, patch
from pyownet import protocol
import pytest
from syrupy.assertion import SnapshotAssertion
from homeassistant.components.onewire.const import DOMAIN
from homeassistant.config_entries import ConfigEntryState
@ -14,6 +15,7 @@ from homeassistant.helpers import device_registry as dr
from homeassistant.setup import async_setup_component
from . import setup_owproxy_mock_devices
from .const import MOCK_OWPROXY_DEVICES
from tests.common import MockConfigEntry
from tests.typing import WebSocketGenerator
@ -80,6 +82,26 @@ async def test_update_options(
assert owproxy.call_count == 2
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_registry(
hass: HomeAssistant,
config_entry: MockConfigEntry,
owproxy: MagicMock,
device_registry: dr.DeviceRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test device are correctly registered."""
setup_owproxy_mock_devices(owproxy, MOCK_OWPROXY_DEVICES.keys())
await hass.config_entries.async_setup(config_entry.entry_id)
device_entries = dr.async_entries_for_config_entry(
device_registry, config_entry.entry_id
)
assert device_entries
for device_entry in device_entries:
assert device_entry == snapshot(name=f"{device_entry.name}-entry")
@patch("homeassistant.components.onewire._PLATFORMS", [Platform.SENSOR])
async def test_registry_cleanup(
hass: HomeAssistant,

View File

@ -11,12 +11,12 @@ from syrupy.assertion import SnapshotAssertion
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers import entity_registry as er
from . import setup_owproxy_mock_devices
from .const import ATTR_INJECT_READS, MOCK_OWPROXY_DEVICES
from tests.common import MockConfigEntry
from tests.common import MockConfigEntry, snapshot_platform
@pytest.fixture(autouse=True)
@ -26,42 +26,19 @@ def override_platforms() -> Generator[None]:
yield
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_sensors(
hass: HomeAssistant,
config_entry: MockConfigEntry,
owproxy: MagicMock,
device_id: str,
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test for 1-Wire sensors."""
setup_owproxy_mock_devices(owproxy, [device_id])
setup_owproxy_mock_devices(owproxy, MOCK_OWPROXY_DEVICES.keys())
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
# Ensure devices are correctly registered
device_entries = dr.async_entries_for_config_entry(
device_registry, config_entry.entry_id
)
assert device_entries == snapshot
# Ensure entities are correctly registered
entity_entries = er.async_entries_for_config_entry(
entity_registry, config_entry.entry_id
)
assert entity_entries == snapshot
setup_owproxy_mock_devices(owproxy, [device_id])
# Some entities are disabled, enable them and reload before checking states
for ent in entity_entries:
entity_registry.async_update_entity(ent.entity_id, disabled_by=None)
await hass.config_entries.async_reload(config_entry.entry_id)
await hass.async_block_till_done()
# Ensure entity states are correct
states = [hass.states.get(ent.entity_id) for ent in entity_entries]
assert states == snapshot
await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
@pytest.mark.parametrize("device_id", ["12.111111111111"])

View File

@ -15,11 +15,12 @@ from homeassistant.const import (
Platform,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers import entity_registry as er
from . import setup_owproxy_mock_devices
from .const import MOCK_OWPROXY_DEVICES
from tests.common import MockConfigEntry
from tests.common import MockConfigEntry, snapshot_platform
@pytest.fixture(autouse=True)
@ -29,42 +30,19 @@ def override_platforms() -> Generator[None]:
yield
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_switches(
hass: HomeAssistant,
config_entry: MockConfigEntry,
owproxy: MagicMock,
device_id: str,
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test for 1-Wire switches."""
setup_owproxy_mock_devices(owproxy, [device_id])
setup_owproxy_mock_devices(owproxy, MOCK_OWPROXY_DEVICES.keys())
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
# Ensure devices are correctly registered
device_entries = dr.async_entries_for_config_entry(
device_registry, config_entry.entry_id
)
assert device_entries == snapshot
# Ensure entities are correctly registered
entity_entries = er.async_entries_for_config_entry(
entity_registry, config_entry.entry_id
)
assert entity_entries == snapshot
setup_owproxy_mock_devices(owproxy, [device_id])
# Some entities are disabled, enable them and reload before checking states
for ent in entity_entries:
entity_registry.async_update_entity(ent.entity_id, disabled_by=None)
await hass.config_entries.async_reload(config_entry.entry_id)
await hass.async_block_till_done()
# Ensure entity states are correct
states = [hass.states.get(ent.entity_id) for ent in entity_entries]
assert states == snapshot
await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
@pytest.mark.parametrize("device_id", ["05.111111111111"])