From 2577fb804bc96a87334048e0ec979aa3e38f58ae Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Mon, 19 Aug 2024 11:00:33 +0200 Subject: [PATCH] Add sonos snapshot test (#124036) --- .../sonos/snapshots/test_media_player.ambr | 58 +++++++++++++++++++ tests/components/sonos/test_media_player.py | 20 ++++--- 2 files changed, 70 insertions(+), 8 deletions(-) create mode 100644 tests/components/sonos/snapshots/test_media_player.ambr diff --git a/tests/components/sonos/snapshots/test_media_player.ambr b/tests/components/sonos/snapshots/test_media_player.ambr new file mode 100644 index 00000000000..9c43bceb43b --- /dev/null +++ b/tests/components/sonos/snapshots/test_media_player.ambr @@ -0,0 +1,58 @@ +# serializer version: 1 +# name: test_entity_basic[media_player.zone_a-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'media_player', + 'entity_category': None, + 'entity_id': 'media_player.zone_a', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': None, + 'platform': 'sonos', + 'previous_unique_id': None, + 'supported_features': , + 'translation_key': None, + 'unique_id': 'RINCON_test', + 'unit_of_measurement': None, + }) +# --- +# name: test_entity_basic[media_player.zone_a-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'speaker', + 'friendly_name': 'Zone A', + 'group_members': list([ + 'media_player.zone_a', + ]), + 'is_volume_muted': False, + 'media_content_type': , + 'repeat': , + 'shuffle': False, + 'supported_features': , + 'volume_level': 0.19, + }), + 'context': , + 'entity_id': 'media_player.zone_a', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'idle', + }) +# --- diff --git a/tests/components/sonos/test_media_player.py b/tests/components/sonos/test_media_player.py index b7b879dc368..d96ceb900e7 100644 --- a/tests/components/sonos/test_media_player.py +++ b/tests/components/sonos/test_media_player.py @@ -5,6 +5,7 @@ from typing import Any from unittest.mock import patch import pytest +from syrupy import SnapshotAssertion from homeassistant.components.media_player import ( ATTR_INPUT_SOURCE, @@ -44,10 +45,10 @@ from homeassistant.const import ( SERVICE_VOLUME_DOWN, SERVICE_VOLUME_SET, SERVICE_VOLUME_UP, - STATE_IDLE, ) from homeassistant.core import HomeAssistant from homeassistant.exceptions import ServiceValidationError +from homeassistant.helpers import entity_registry as er from homeassistant.helpers.device_registry import ( CONNECTION_NETWORK_MAC, CONNECTION_UPNP, @@ -93,15 +94,18 @@ async def test_device_registry_not_portable( async def test_entity_basic( - hass: HomeAssistant, async_autosetup_sonos, discover + hass: HomeAssistant, + async_autosetup_sonos, + discover, + entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test basic state and attributes.""" - state = hass.states.get("media_player.zone_a") - assert state.state == STATE_IDLE - attributes = state.attributes - assert attributes["friendly_name"] == "Zone A" - assert attributes["is_volume_muted"] is False - assert attributes["volume_level"] == 0.19 + entity_id = "media_player.zone_a" + entity_entry = entity_registry.async_get(entity_id) + assert entity_entry == snapshot(name=f"{entity_entry.entity_id}-entry") + state = hass.states.get(entity_entry.entity_id) + assert state == snapshot(name=f"{entity_entry.entity_id}-state") @pytest.mark.parametrize(