From 9f2fa7ec19d90db5a6c42a2cb5b5d3f8e62e41ee Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Sun, 7 Apr 2024 13:19:40 +0200 Subject: [PATCH] Add snapshot tests to Bluemaestro (#115094) --- .../bluemaestro/snapshots/test_sensor.ambr | 256 ++++++++++++++++++ tests/components/bluemaestro/test_sensor.py | 28 +- 2 files changed, 274 insertions(+), 10 deletions(-) create mode 100644 tests/components/bluemaestro/snapshots/test_sensor.ambr diff --git a/tests/components/bluemaestro/snapshots/test_sensor.ambr b/tests/components/bluemaestro/snapshots/test_sensor.ambr new file mode 100644 index 00000000000..a86758c709a --- /dev/null +++ b/tests/components/bluemaestro/snapshots/test_sensor.ambr @@ -0,0 +1,256 @@ +# serializer version: 1 +# name: test_sensors[sensor.tempo_disc_thd_eeff_battery-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_battery', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery', + 'platform': 'bluemaestro', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'aa:bb:cc:dd:ee:ff-battery', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_battery-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'Tempo Disc THD EEFF Battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_battery', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '100', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_dew_point-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tempo_disc_thd_eeff_dew_point', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Dew Point', + 'platform': 'bluemaestro', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'aa:bb:cc:dd:ee:ff-dew_point', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_dew_point-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'Tempo Disc THD EEFF Dew Point', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_dew_point', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '13.1', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_humidity-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tempo_disc_thd_eeff_humidity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Humidity', + 'platform': 'bluemaestro', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'aa:bb:cc:dd:ee:ff-humidity', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_humidity-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'humidity', + 'friendly_name': 'Tempo Disc THD EEFF Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_humidity', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '49.8', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_signal_strength-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_signal_strength', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Signal Strength', + 'platform': 'bluemaestro', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'aa:bb:cc:dd:ee:ff-signal_strength', + 'unit_of_measurement': 'dBm', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_signal_strength-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'signal_strength', + 'friendly_name': 'Tempo Disc THD EEFF Signal Strength', + 'state_class': , + 'unit_of_measurement': 'dBm', + }), + 'context': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_signal_strength', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '-60', + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_temperature-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.tempo_disc_thd_eeff_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Temperature', + 'platform': 'bluemaestro', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'aa:bb:cc:dd:ee:ff-temperature', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.tempo_disc_thd_eeff_temperature-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'Tempo Disc THD EEFF Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.tempo_disc_thd_eeff_temperature', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '24.2', + }) +# --- diff --git a/tests/components/bluemaestro/test_sensor.py b/tests/components/bluemaestro/test_sensor.py index fdcb16730ff..a75e390c781 100644 --- a/tests/components/bluemaestro/test_sensor.py +++ b/tests/components/bluemaestro/test_sensor.py @@ -1,9 +1,11 @@ """Test the BlueMaestro sensors.""" +import pytest +from syrupy import SnapshotAssertion + from homeassistant.components.bluemaestro.const import DOMAIN -from homeassistant.components.sensor import ATTR_STATE_CLASS -from homeassistant.const import ATTR_FRIENDLY_NAME, ATTR_UNIT_OF_MEASUREMENT from homeassistant.core import HomeAssistant +from homeassistant.helpers import entity_registry as er from . import BLUEMAESTRO_SERVICE_INFO @@ -11,7 +13,12 @@ from tests.common import MockConfigEntry from tests.components.bluetooth import inject_bluetooth_service_info -async def test_sensors(hass: HomeAssistant) -> None: +@pytest.mark.usefixtures("entity_registry_enabled_by_default") +async def test_sensors( + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, +) -> None: """Test setting up creates the sensors.""" entry = MockConfigEntry( domain=DOMAIN, @@ -25,14 +32,15 @@ async def test_sensors(hass: HomeAssistant) -> None: assert len(hass.states.async_all("sensor")) == 0 inject_bluetooth_service_info(hass, BLUEMAESTRO_SERVICE_INFO) await hass.async_block_till_done() - assert len(hass.states.async_all("sensor")) == 4 + assert len(hass.states.async_all("sensor")) == 5 + entity_entries = er.async_entries_for_config_entry(entity_registry, entry.entry_id) - humid_sensor = hass.states.get("sensor.tempo_disc_thd_eeff_temperature") - humid_sensor_attrs = humid_sensor.attributes - assert humid_sensor.state == "24.2" - assert humid_sensor_attrs[ATTR_FRIENDLY_NAME] == "Tempo Disc THD EEFF Temperature" - assert humid_sensor_attrs[ATTR_UNIT_OF_MEASUREMENT] == "°C" - assert humid_sensor_attrs[ATTR_STATE_CLASS] == "measurement" + assert entity_entries + for entity_entry in entity_entries: + assert hass.states.get(entity_entry.entity_id) == snapshot( + name=f"{entity_entry.entity_id}-state" + ) + assert entity_entry == snapshot(name=f"{entity_entry.entity_id}-entry") assert await hass.config_entries.async_unload(entry.entry_id) await hass.async_block_till_done()