From edd14929e3c8ee2a15f725489f5c0ca7eb383d42 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 24 May 2024 09:23:09 +0200 Subject: [PATCH] Add snapshot tests to plaato (#118017) --- tests/components/plaato/__init__.py | 52 ++ .../plaato/snapshots/test_binary_sensor.ambr | 101 +++ .../plaato/snapshots/test_sensor.ambr | 574 ++++++++++++++++++ tests/components/plaato/test_binary_sensor.py | 33 + tests/components/plaato/test_sensor.py | 34 ++ 5 files changed, 794 insertions(+) create mode 100644 tests/components/plaato/snapshots/test_binary_sensor.ambr create mode 100644 tests/components/plaato/snapshots/test_sensor.ambr create mode 100644 tests/components/plaato/test_binary_sensor.py create mode 100644 tests/components/plaato/test_sensor.py diff --git a/tests/components/plaato/__init__.py b/tests/components/plaato/__init__.py index dac4d341790..a4dcdcd5b53 100644 --- a/tests/components/plaato/__init__.py +++ b/tests/components/plaato/__init__.py @@ -1 +1,53 @@ """Tests for the Plaato integration.""" + +from unittest.mock import patch + +from pyplaato.models.airlock import PlaatoAirlock +from pyplaato.models.device import PlaatoDeviceType +from pyplaato.models.keg import PlaatoKeg + +from homeassistant.components.plaato.const import ( + CONF_DEVICE_NAME, + CONF_DEVICE_TYPE, + CONF_USE_WEBHOOK, + DOMAIN, +) +from homeassistant.const import CONF_TOKEN +from homeassistant.core import HomeAssistant + +from tests.common import MockConfigEntry + +# Note: It would be good to replace this test data +# with actual data from the API +AIRLOCK_DATA = {} +KEG_DATA = {} + + +async def init_integration( + hass: HomeAssistant, device_type: PlaatoDeviceType +) -> MockConfigEntry: + """Mock integration setup.""" + with ( + patch( + "homeassistant.components.plaato.Plaato.get_airlock_data", + return_value=PlaatoAirlock(AIRLOCK_DATA), + ), + patch( + "homeassistant.components.plaato.Plaato.get_keg_data", + return_value=PlaatoKeg(KEG_DATA), + ), + ): + entry = MockConfigEntry( + domain=DOMAIN, + data={ + CONF_USE_WEBHOOK: False, + CONF_TOKEN: "valid_token", + CONF_DEVICE_TYPE: device_type, + CONF_DEVICE_NAME: "device_name", + }, + entry_id="123456", + ) + entry.add_to_hass(hass) + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + return entry diff --git a/tests/components/plaato/snapshots/test_binary_sensor.ambr b/tests/components/plaato/snapshots/test_binary_sensor.ambr new file mode 100644 index 00000000000..e8db3bf32d8 --- /dev/null +++ b/tests/components/plaato/snapshots/test_binary_sensor.ambr @@ -0,0 +1,101 @@ +# serializer version: 1 +# name: test_binary_sensors[Keg][binary_sensor.plaato_plaatodevicetype_keg_device_name_leaking-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.plaato_plaatodevicetype_keg_device_name_leaking', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Keg Device_Name Leaking', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.LEAK_DETECTION', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensors[Keg][binary_sensor.plaato_plaatodevicetype_keg_device_name_leaking-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'beer_name': 'Beer', + 'device_class': 'problem', + 'friendly_name': 'Plaato Plaatodevicetype.Keg Device_Name Leaking', + 'keg_date': '05/24/24', + 'mode': 'Co2', + }), + 'context': , + 'entity_id': 'binary_sensor.plaato_plaatodevicetype_keg_device_name_leaking', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensors[Keg][binary_sensor.plaato_plaatodevicetype_keg_device_name_pouring-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.plaato_plaatodevicetype_keg_device_name_pouring', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Keg Device_Name Pouring', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.POURING', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensors[Keg][binary_sensor.plaato_plaatodevicetype_keg_device_name_pouring-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'beer_name': 'Beer', + 'device_class': 'opening', + 'friendly_name': 'Plaato Plaatodevicetype.Keg Device_Name Pouring', + 'keg_date': '05/24/24', + 'mode': 'Co2', + }), + 'context': , + 'entity_id': 'binary_sensor.plaato_plaatodevicetype_keg_device_name_pouring', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- diff --git a/tests/components/plaato/snapshots/test_sensor.ambr b/tests/components/plaato/snapshots/test_sensor.ambr new file mode 100644 index 00000000000..110ffb04ba9 --- /dev/null +++ b/tests/components/plaato/snapshots/test_sensor.ambr @@ -0,0 +1,574 @@ +# serializer version: 1 +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_alcohol_by_volume-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_alcohol_by_volume', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Alcohol By Volume', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.ABV', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_alcohol_by_volume-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Alcohol By Volume', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_alcohol_by_volume', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_batch_volume-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_batch_volume', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Batch Volume', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.BATCH_VOLUME', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_batch_volume-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Batch Volume', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_batch_volume', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_bubbles-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_bubbles', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Bubbles', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.BUBBLES', + 'unit_of_measurement': '', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_bubbles-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Bubbles', + 'unit_of_measurement': '', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_bubbles', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_bubbles_per_minute-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_bubbles_per_minute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Bubbles Per Minute', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.BPM', + 'unit_of_measurement': 'bpm', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_bubbles_per_minute-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Bubbles Per Minute', + 'unit_of_measurement': 'bpm', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_bubbles_per_minute', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_co2_volume-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_co2_volume', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Co2 Volume', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.CO2_VOLUME', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_co2_volume-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Co2 Volume', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_co2_volume', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_original_gravity-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_original_gravity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Original Gravity', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.OG', + 'unit_of_measurement': '', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_original_gravity-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Original Gravity', + 'unit_of_measurement': '', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_original_gravity', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_specific_gravity-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_specific_gravity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Specific Gravity', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.SG', + 'unit_of_measurement': '', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_specific_gravity-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Specific Gravity', + 'unit_of_measurement': '', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_specific_gravity', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_temperature-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Airlock Device_Name Temperature', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.TEMPERATURE', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[Airlock][sensor.plaato_plaatodevicetype_airlock_device_name_temperature-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Plaato Plaatodevicetype.Airlock Device_Name Temperature', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_airlock_device_name_temperature', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_beer_left-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_beer_left', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Keg Device_Name Beer Left', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.BEER_LEFT', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_beer_left-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'beer_name': 'Beer', + 'friendly_name': 'Plaato Plaatodevicetype.Keg Device_Name Beer Left', + 'keg_date': '05/24/24', + 'mode': 'Co2', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_beer_left', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_last_pour_amount-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_last_pour_amount', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Keg Device_Name Last Pour Amount', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.LAST_POUR', + 'unit_of_measurement': 'oz', + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_last_pour_amount-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'beer_name': 'Beer', + 'friendly_name': 'Plaato Plaatodevicetype.Keg Device_Name Last Pour Amount', + 'keg_date': '05/24/24', + 'mode': 'Co2', + 'unit_of_measurement': 'oz', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_last_pour_amount', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_percent_beer_left-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_percent_beer_left', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Keg Device_Name Percent Beer Left', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.PERCENT_BEER_LEFT', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_percent_beer_left-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'beer_name': 'Beer', + 'friendly_name': 'Plaato Plaatodevicetype.Keg Device_Name Percent Beer Left', + 'keg_date': '05/24/24', + 'mode': 'Co2', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_percent_beer_left', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_temperature-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Plaato Plaatodevicetype.Keg Device_Name Temperature', + 'platform': 'plaato', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'valid_token_Pins.TEMPERATURE', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[Keg][sensor.plaato_plaatodevicetype_keg_device_name_temperature-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'beer_name': 'Beer', + 'device_class': 'temperature', + 'friendly_name': 'Plaato Plaatodevicetype.Keg Device_Name Temperature', + 'keg_date': '05/24/24', + 'mode': 'Co2', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.plaato_plaatodevicetype_keg_device_name_temperature', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- diff --git a/tests/components/plaato/test_binary_sensor.py b/tests/components/plaato/test_binary_sensor.py new file mode 100644 index 00000000000..73d378dd531 --- /dev/null +++ b/tests/components/plaato/test_binary_sensor.py @@ -0,0 +1,33 @@ +"""Tests for the plaato binary sensors.""" + +from unittest.mock import patch + +from pyplaato.models.device import PlaatoDeviceType +import pytest +from syrupy import SnapshotAssertion + +from homeassistant.const import Platform +from homeassistant.core import HomeAssistant +from homeassistant.helpers import entity_registry as er + +from . import init_integration + +from tests.common import snapshot_platform + + +# note: PlaatoDeviceType.Airlock does not provide binary sensors +@pytest.mark.parametrize("device_type", [PlaatoDeviceType.Keg]) +async def test_binary_sensors( + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, + device_type: PlaatoDeviceType, +) -> None: + """Test binary sensors.""" + with patch( + "homeassistant.components.plaato.PLATFORMS", + [Platform.BINARY_SENSOR], + ): + entry = await init_integration(hass, device_type) + + await snapshot_platform(hass, entity_registry, snapshot, entry.entry_id) diff --git a/tests/components/plaato/test_sensor.py b/tests/components/plaato/test_sensor.py new file mode 100644 index 00000000000..e4574634c4b --- /dev/null +++ b/tests/components/plaato/test_sensor.py @@ -0,0 +1,34 @@ +"""Tests for the plaato sensors.""" + +from unittest.mock import patch + +from pyplaato.models.device import PlaatoDeviceType +import pytest +from syrupy import SnapshotAssertion + +from homeassistant.const import Platform +from homeassistant.core import HomeAssistant +from homeassistant.helpers import entity_registry as er + +from . import init_integration + +from tests.common import snapshot_platform + + +@pytest.mark.parametrize( + "device_type", [PlaatoDeviceType.Airlock, PlaatoDeviceType.Keg] +) +async def test_sensors( + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, + device_type: PlaatoDeviceType, +) -> None: + """Test sensors.""" + with patch( + "homeassistant.components.plaato.PLATFORMS", + [Platform.SENSOR], + ): + entry = await init_integration(hass, device_type) + + await snapshot_platform(hass, entity_registry, snapshot, entry.entry_id)