diff --git a/tests/components/wled/snapshots/test_binary_sensor.ambr b/tests/components/wled/snapshots/test_binary_sensor.ambr new file mode 100644 index 00000000000..7520ea7a6a6 --- /dev/null +++ b/tests/components/wled/snapshots/test_binary_sensor.ambr @@ -0,0 +1,75 @@ +# serializer version: 1 +# name: test_update_available + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'update', + 'friendly_name': 'WLED RGB Light Firmware', + }), + 'context': , + 'entity_id': 'binary_sensor.wled_rgb_light_firmware', + 'last_changed': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_update_available.1 + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.wled_rgb_light_firmware', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Firmware', + 'platform': 'wled', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'aabbccddeeff_update', + 'unit_of_measurement': None, + }) +# --- +# name: test_update_available.2 + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': 'http://127.0.0.1', + 'connections': set({ + tuple( + 'mac', + 'aa:bb:cc:dd:ee:ff', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': 'esp8266', + 'id': , + 'identifiers': set({ + tuple( + 'wled', + 'aabbccddeeff', + ), + }), + 'is_new': False, + 'manufacturer': 'WLED', + 'model': 'DIY light', + 'name': 'WLED RGB Light', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '0.8.5', + 'via_device_id': None, + }) +# --- diff --git a/tests/components/wled/test_binary_sensor.py b/tests/components/wled/test_binary_sensor.py index aa1bec313df..eb5faadd530 100644 --- a/tests/components/wled/test_binary_sensor.py +++ b/tests/components/wled/test_binary_sensor.py @@ -1,56 +1,46 @@ """Tests for the WLED binary sensor platform.""" import pytest +from syrupy.assertion import SnapshotAssertion -from homeassistant.components.binary_sensor import BinarySensorDeviceClass -from homeassistant.const import ( - ATTR_DEVICE_CLASS, - ATTR_ICON, - STATE_OFF, - STATE_ON, - EntityCategory, -) +from homeassistant.const import STATE_OFF from homeassistant.core import HomeAssistant -from homeassistant.helpers import entity_registry as er +from homeassistant.helpers import device_registry as dr, entity_registry as er pytestmark = pytest.mark.usefixtures("init_integration") @pytest.mark.usefixtures("entity_registry_enabled_by_default") async def test_update_available( - hass: HomeAssistant, entity_registry: er.EntityRegistry + hass: HomeAssistant, + device_registry: dr.DeviceRegistry, + entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test the firmware update binary sensor.""" assert (state := hass.states.get("binary_sensor.wled_rgb_light_firmware")) - assert state.attributes.get(ATTR_DEVICE_CLASS) == BinarySensorDeviceClass.UPDATE - assert state.state == STATE_ON - assert ATTR_ICON not in state.attributes + assert state == snapshot - assert (entry := entity_registry.async_get("binary_sensor.wled_rgb_light_firmware")) - assert entry.unique_id == "aabbccddeeff_update" - assert entry.entity_category is EntityCategory.DIAGNOSTIC + assert (entity_entry := entity_registry.async_get(state.entity_id)) + assert entity_entry == snapshot + + assert entity_entry.device_id + assert (device_entry := device_registry.async_get(entity_entry.device_id)) + assert device_entry == snapshot @pytest.mark.usefixtures("entity_registry_enabled_by_default") @pytest.mark.parametrize("device_fixture", ["rgb_websocket"]) -async def test_no_update_available( - hass: HomeAssistant, entity_registry: er.EntityRegistry -) -> None: +async def test_no_update_available(hass: HomeAssistant) -> None: """Test the update binary sensor. There is no update available.""" assert (state := hass.states.get("binary_sensor.wled_websocket_firmware")) - assert state.attributes.get(ATTR_DEVICE_CLASS) == BinarySensorDeviceClass.UPDATE assert state.state == STATE_OFF - assert ATTR_ICON not in state.attributes - - assert (entry := entity_registry.async_get("binary_sensor.wled_websocket_firmware")) - assert entry.unique_id == "aabbccddeeff_update" - assert entry.entity_category is EntityCategory.DIAGNOSTIC async def test_disabled_by_default( hass: HomeAssistant, entity_registry: er.EntityRegistry ) -> None: """Test that the binary update sensor is disabled by default.""" - assert hass.states.get("binary_sensor.wled_rgb_light_firmware") is None + assert not hass.states.get("binary_sensor.wled_rgb_light_firmware") assert (entry := entity_registry.async_get("binary_sensor.wled_rgb_light_firmware")) assert entry.disabled