Add snapshot tests to Ondilo Ico (#116929)

This commit is contained in:
Joost Lekkerkerker 2024-05-06 15:08:15 +02:00 committed by GitHub
parent 74df693079
commit 9517800da6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 714 additions and 10 deletions

View File

@ -0,0 +1,703 @@
# serializer version: 1
# name: test_sensors[sensor.pool_1_battery-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_battery',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
'original_icon': None,
'original_name': 'Battery',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'W1122333044455-battery',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[sensor.pool_1_battery-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'battery',
'friendly_name': 'Pool 1 Battery',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_battery',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '50',
})
# ---
# name: test_sensors[sensor.pool_1_oxydo_reduction_potential-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_oxydo_reduction_potential',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Oxydo reduction potential',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'oxydo_reduction_potential',
'unique_id': 'W1122333044455-orp',
'unit_of_measurement': <UnitOfElectricPotential.MILLIVOLT: 'mV'>,
})
# ---
# name: test_sensors[sensor.pool_1_oxydo_reduction_potential-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 1 Oxydo reduction potential',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfElectricPotential.MILLIVOLT: 'mV'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_oxydo_reduction_potential',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '647',
})
# ---
# name: test_sensors[sensor.pool_1_ph-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_ph',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'pH',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'ph',
'unique_id': 'W1122333044455-ph',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[sensor.pool_1_ph-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 1 pH',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_ph',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '9.29',
})
# ---
# name: test_sensors[sensor.pool_1_rssi-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_rssi',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'RSSI',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'rssi',
'unique_id': 'W1122333044455-rssi',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[sensor.pool_1_rssi-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 1 RSSI',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_rssi',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '60',
})
# ---
# name: test_sensors[sensor.pool_1_salt-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_salt',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Salt',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'salt',
'unique_id': 'W1122333044455-salt',
'unit_of_measurement': 'mg/L',
})
# ---
# name: test_sensors[sensor.pool_1_salt-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 1 Salt',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'mg/L',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_salt',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.pool_1_tds-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_tds',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'TDS',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'tds',
'unique_id': 'W1122333044455-tds',
'unit_of_measurement': 'ppm',
})
# ---
# name: test_sensors[sensor.pool_1_tds-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 1 TDS',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'ppm',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_tds',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '845',
})
# ---
# name: test_sensors[sensor.pool_1_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_1_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Temperature',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'W1122333044455-temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_sensors[sensor.pool_1_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Pool 1 Temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pool_1_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '19',
})
# ---
# name: test_sensors[sensor.pool_2_battery-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_battery',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
'original_icon': None,
'original_name': 'Battery',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'W2233304445566-battery',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[sensor.pool_2_battery-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'battery',
'friendly_name': 'Pool 2 Battery',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_battery',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '50',
})
# ---
# name: test_sensors[sensor.pool_2_oxydo_reduction_potential-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_oxydo_reduction_potential',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Oxydo reduction potential',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'oxydo_reduction_potential',
'unique_id': 'W2233304445566-orp',
'unit_of_measurement': <UnitOfElectricPotential.MILLIVOLT: 'mV'>,
})
# ---
# name: test_sensors[sensor.pool_2_oxydo_reduction_potential-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 2 Oxydo reduction potential',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfElectricPotential.MILLIVOLT: 'mV'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_oxydo_reduction_potential',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '647',
})
# ---
# name: test_sensors[sensor.pool_2_ph-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_ph',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'pH',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'ph',
'unique_id': 'W2233304445566-ph',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[sensor.pool_2_ph-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 2 pH',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_ph',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '9.29',
})
# ---
# name: test_sensors[sensor.pool_2_rssi-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_rssi',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'RSSI',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'rssi',
'unique_id': 'W2233304445566-rssi',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[sensor.pool_2_rssi-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 2 RSSI',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_rssi',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '60',
})
# ---
# name: test_sensors[sensor.pool_2_salt-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_salt',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Salt',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'salt',
'unique_id': 'W2233304445566-salt',
'unit_of_measurement': 'mg/L',
})
# ---
# name: test_sensors[sensor.pool_2_salt-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 2 Salt',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'mg/L',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_salt',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.pool_2_tds-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_tds',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'TDS',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'tds',
'unique_id': 'W2233304445566-tds',
'unit_of_measurement': 'ppm',
})
# ---
# name: test_sensors[sensor.pool_2_tds-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Pool 2 TDS',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'ppm',
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_tds',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '845',
})
# ---
# name: test_sensors[sensor.pool_2_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.pool_2_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Temperature',
'platform': 'ondilo_ico',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'W2233304445566-temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_sensors[sensor.pool_2_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Pool 2 Temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.pool_2_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '19',
})
# ---

View File

@ -1,31 +1,32 @@
"""Test Ondilo ICO integration sensors."""
from typing import Any
from unittest.mock import MagicMock
from unittest.mock import MagicMock, patch
from ondilo import OndiloError
from syrupy import SnapshotAssertion
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from . import setup_integration
from tests.common import MockConfigEntry
from tests.common import MockConfigEntry, snapshot_platform
async def test_can_get_pools_when_no_error(
async def test_sensors(
hass: HomeAssistant,
mock_ondilo_client: MagicMock,
config_entry: MockConfigEntry,
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test that I can get all pools data when no error."""
await setup_integration(hass, config_entry, mock_ondilo_client)
with patch("homeassistant.components.ondilo_ico.PLATFORMS", [Platform.SENSOR]):
await setup_integration(hass, config_entry, mock_ondilo_client)
# All sensors were created
assert len(hass.states.async_all()) == 14
# Check 2 of the sensors.
assert hass.states.get("sensor.pool_1_temperature").state == "19"
assert hass.states.get("sensor.pool_2_rssi").state == "60"
await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
async def test_no_ico_for_one_pool(