Use snapshot assertion in rainforest_raven sensor tests (#128604)

This commit is contained in:
epenet 2024-10-18 09:50:04 +02:00 committed by GitHub
parent 57ef175050
commit 10d26bf734
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 268 additions and 25 deletions

View File

@ -0,0 +1,257 @@
# serializer version: 1
# name: test_sensors[sensor.raven_device_meter_power_demand-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.raven_device_meter_power_demand',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.POWER: 'power'>,
'original_icon': None,
'original_name': 'Meter power demand',
'platform': 'rainforest_raven',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'power_demand',
'unique_id': '1234567890abcdef.InstantaneousDemand.demand',
'unit_of_measurement': <UnitOfPower.KILO_WATT: 'kW'>,
})
# ---
# name: test_sensors[sensor.raven_device_meter_power_demand-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'power',
'friendly_name': 'RAVEn Device Meter power demand',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfPower.KILO_WATT: 'kW'>,
}),
'context': <ANY>,
'entity_id': 'sensor.raven_device_meter_power_demand',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1.2345',
})
# ---
# name: test_sensors[sensor.raven_device_meter_price-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.raven_device_meter_price',
'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': 'Meter price',
'platform': 'rainforest_raven',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'meter_price',
'unique_id': '1234567890abcdef.PriceCluster.price',
'unit_of_measurement': 'USD/kWh',
})
# ---
# name: test_sensors[sensor.raven_device_meter_price-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'RAVEn Device Meter price',
'rate_label': 'Set by user',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'tier': 3,
'unit_of_measurement': 'USD/kWh',
}),
'context': <ANY>,
'entity_id': 'sensor.raven_device_meter_price',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.10',
})
# ---
# name: test_sensors[sensor.raven_device_meter_signal_strength-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': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.raven_device_meter_signal_strength',
'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': 'Meter signal strength',
'platform': 'rainforest_raven',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'signal_strength',
'unique_id': 'abcdef0123456789.NetworkInfo.link_strength',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[sensor.raven_device_meter_signal_strength-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'channel': 13,
'friendly_name': 'RAVEn Device Meter signal strength',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.raven_device_meter_signal_strength',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '100',
})
# ---
# name: test_sensors[sensor.raven_device_total_meter_energy_delivered-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.raven_device_total_meter_energy_delivered',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Total meter energy delivered',
'platform': 'rainforest_raven',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'total_energy_delivered',
'unique_id': '1234567890abcdef.CurrentSummationDelivered.summation_delivered',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_sensors[sensor.raven_device_total_meter_energy_delivered-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'RAVEn Device Total meter energy delivered',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.raven_device_total_meter_energy_delivered',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '23456.7890',
})
# ---
# name: test_sensors[sensor.raven_device_total_meter_energy_received-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.raven_device_total_meter_energy_received',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Total meter energy received',
'platform': 'rainforest_raven',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'total_energy_received',
'unique_id': '1234567890abcdef.CurrentSummationDelivered.summation_received',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_sensors[sensor.raven_device_total_meter_energy_received-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'RAVEn Device Total meter energy received',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.raven_device_total_meter_energy_received',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '00000.0000',
})
# ---

View File

@ -1,36 +1,22 @@
"""Tests for the Rainforest RAVEn sensors.""" """Tests for the Rainforest RAVEn sensors."""
import pytest import pytest
from syrupy.assertion import SnapshotAssertion
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from tests.common import MockConfigEntry, snapshot_platform
@pytest.mark.usefixtures("mock_entry") @pytest.mark.usefixtures("mock_entry")
async def test_sensors(hass: HomeAssistant) -> None: async def test_sensors(
hass: HomeAssistant,
mock_entry: MockConfigEntry,
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test the sensors.""" """Test the sensors."""
assert len(hass.states.async_all()) == 5 assert len(hass.states.async_all()) == 5
demand = hass.states.get("sensor.raven_device_meter_power_demand") await snapshot_platform(hass, entity_registry, snapshot, mock_entry.entry_id)
assert demand is not None
assert demand.state == "1.2345"
assert demand.attributes["unit_of_measurement"] == "kW"
delivered = hass.states.get("sensor.raven_device_total_meter_energy_delivered")
assert delivered is not None
assert delivered.state == "23456.7890"
assert delivered.attributes["unit_of_measurement"] == "kWh"
received = hass.states.get("sensor.raven_device_total_meter_energy_received")
assert received is not None
assert received.state == "00000.0000"
assert received.attributes["unit_of_measurement"] == "kWh"
price = hass.states.get("sensor.raven_device_meter_price")
assert price is not None
assert price.state == "0.10"
assert price.attributes["unit_of_measurement"] == "USD/kWh"
signal = hass.states.get("sensor.raven_device_meter_signal_strength")
assert signal is not None
assert signal.state == "100"
assert signal.attributes["unit_of_measurement"] == "%"