From 10f5ce2dc083b21773e027c918d2bb499aff5ed6 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Thu, 4 Jan 2024 13:12:11 +0100 Subject: [PATCH] Refactor drop tests for binary_sensor (#107090) --- .../drop_connect/test_binary_sensor.py | 136 +++++++++--------- 1 file changed, 70 insertions(+), 66 deletions(-) diff --git a/tests/components/drop_connect/test_binary_sensor.py b/tests/components/drop_connect/test_binary_sensor.py index ca94faeec5e..2f54e8fb791 100644 --- a/tests/components/drop_connect/test_binary_sensor.py +++ b/tests/components/drop_connect/test_binary_sensor.py @@ -1,9 +1,7 @@ """Test DROP binary sensor entities.""" -from homeassistant.components.drop_connect.const import DOMAIN -from homeassistant.const import STATE_OFF, STATE_ON, STATE_UNKNOWN +from homeassistant.const import STATE_OFF, STATE_ON from homeassistant.core import HomeAssistant -from homeassistant.setup import async_setup_component from .common import ( TEST_DATA_HUB, @@ -27,6 +25,13 @@ from .common import ( TEST_DATA_SOFTENER, TEST_DATA_SOFTENER_RESET, TEST_DATA_SOFTENER_TOPIC, + config_entry_hub, + config_entry_leak, + config_entry_protection_valve, + config_entry_pump_controller, + config_entry_ro_filter, + config_entry_salt, + config_entry_softener, ) from tests.common import async_fire_mqtt_message @@ -34,159 +39,158 @@ from tests.typing import MqttMockHAClient async def test_binary_sensors_hub( - hass: HomeAssistant, config_entry_hub, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for hubs.""" - config_entry_hub.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_hub() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) pending_notifications_sensor_name = ( "binary_sensor.hub_drop_1_c0ffee_notification_unread" ) - hass.states.async_set(pending_notifications_sensor_name, STATE_UNKNOWN) + assert hass.states.get(pending_notifications_sensor_name).state == STATE_OFF leak_sensor_name = "binary_sensor.hub_drop_1_c0ffee_leak_detected" - hass.states.async_set(leak_sensor_name, STATE_UNKNOWN) + assert hass.states.get(leak_sensor_name).state == STATE_OFF async_fire_mqtt_message(hass, TEST_DATA_HUB_TOPIC, TEST_DATA_HUB_RESET) await hass.async_block_till_done() + assert hass.states.get(pending_notifications_sensor_name).state == STATE_OFF + assert hass.states.get(leak_sensor_name).state == STATE_OFF + async_fire_mqtt_message(hass, TEST_DATA_HUB_TOPIC, TEST_DATA_HUB) await hass.async_block_till_done() - - pending_notifications = hass.states.get(pending_notifications_sensor_name) - assert pending_notifications.state == STATE_ON - - leak = hass.states.get(leak_sensor_name) - assert leak.state == STATE_OFF + assert hass.states.get(pending_notifications_sensor_name).state == STATE_ON + assert hass.states.get(leak_sensor_name).state == STATE_OFF async def test_binary_sensors_salt( - hass: HomeAssistant, config_entry_salt, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for salt sensors.""" - config_entry_salt.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_salt() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) salt_sensor_name = "binary_sensor.salt_sensor_salt_low" - hass.states.async_set(salt_sensor_name, STATE_UNKNOWN) + assert hass.states.get(salt_sensor_name).state == STATE_OFF async_fire_mqtt_message(hass, TEST_DATA_SALT_TOPIC, TEST_DATA_SALT_RESET) await hass.async_block_till_done() + assert hass.states.get(salt_sensor_name).state == STATE_OFF + async_fire_mqtt_message(hass, TEST_DATA_SALT_TOPIC, TEST_DATA_SALT) await hass.async_block_till_done() - - salt = hass.states.get(salt_sensor_name) - assert salt.state == STATE_ON + assert hass.states.get(salt_sensor_name).state == STATE_ON async def test_binary_sensors_leak( - hass: HomeAssistant, config_entry_leak, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for leak detectors.""" - config_entry_leak.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_leak() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) leak_sensor_name = "binary_sensor.leak_detector_leak_detected" - hass.states.async_set(leak_sensor_name, STATE_UNKNOWN) + assert hass.states.get(leak_sensor_name).state == STATE_OFF async_fire_mqtt_message(hass, TEST_DATA_LEAK_TOPIC, TEST_DATA_LEAK_RESET) await hass.async_block_till_done() + assert hass.states.get(leak_sensor_name).state == STATE_OFF + async_fire_mqtt_message(hass, TEST_DATA_LEAK_TOPIC, TEST_DATA_LEAK) await hass.async_block_till_done() - - leak = hass.states.get(leak_sensor_name) - assert leak.state == STATE_ON + assert hass.states.get(leak_sensor_name).state == STATE_ON async def test_binary_sensors_softener( - hass: HomeAssistant, config_entry_softener, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for softeners.""" - config_entry_softener.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_softener() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) reserve_in_use_sensor_name = "binary_sensor.softener_reserve_capacity_in_use" - hass.states.async_set(reserve_in_use_sensor_name, STATE_UNKNOWN) + assert hass.states.get(reserve_in_use_sensor_name).state == STATE_OFF async_fire_mqtt_message(hass, TEST_DATA_SOFTENER_TOPIC, TEST_DATA_SOFTENER_RESET) await hass.async_block_till_done() + assert hass.states.get(reserve_in_use_sensor_name).state == STATE_OFF + async_fire_mqtt_message(hass, TEST_DATA_SOFTENER_TOPIC, TEST_DATA_SOFTENER) await hass.async_block_till_done() - - reserve_in_use = hass.states.get(reserve_in_use_sensor_name) - assert reserve_in_use.state == STATE_ON + assert hass.states.get(reserve_in_use_sensor_name).state == STATE_ON async def test_binary_sensors_protection_valve( - hass: HomeAssistant, config_entry_protection_valve, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for protection valves.""" - config_entry_protection_valve.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_protection_valve() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) leak_sensor_name = "binary_sensor.protection_valve_leak_detected" - hass.states.async_set(leak_sensor_name, STATE_UNKNOWN) + assert hass.states.get(leak_sensor_name).state == STATE_OFF async_fire_mqtt_message( hass, TEST_DATA_PROTECTION_VALVE_TOPIC, TEST_DATA_PROTECTION_VALVE_RESET ) await hass.async_block_till_done() + assert hass.states.get(leak_sensor_name).state == STATE_OFF + async_fire_mqtt_message( hass, TEST_DATA_PROTECTION_VALVE_TOPIC, TEST_DATA_PROTECTION_VALVE ) await hass.async_block_till_done() - - leak = hass.states.get(leak_sensor_name) - assert leak.state == STATE_ON + assert hass.states.get(leak_sensor_name).state == STATE_ON async def test_binary_sensors_pump_controller( - hass: HomeAssistant, config_entry_pump_controller, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for pump controllers.""" - config_entry_pump_controller.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_pump_controller() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) leak_sensor_name = "binary_sensor.pump_controller_leak_detected" - hass.states.async_set(leak_sensor_name, STATE_UNKNOWN) + assert hass.states.get(leak_sensor_name).state == STATE_OFF pump_sensor_name = "binary_sensor.pump_controller_pump_status" - hass.states.async_set(pump_sensor_name, STATE_UNKNOWN) + assert hass.states.get(pump_sensor_name).state == STATE_OFF async_fire_mqtt_message( hass, TEST_DATA_PUMP_CONTROLLER_TOPIC, TEST_DATA_PUMP_CONTROLLER_RESET ) await hass.async_block_till_done() + assert hass.states.get(leak_sensor_name).state == STATE_OFF + assert hass.states.get(pump_sensor_name).state == STATE_OFF + async_fire_mqtt_message( hass, TEST_DATA_PUMP_CONTROLLER_TOPIC, TEST_DATA_PUMP_CONTROLLER ) await hass.async_block_till_done() - - leak = hass.states.get(leak_sensor_name) - assert leak.state == STATE_ON - pump = hass.states.get(pump_sensor_name) - assert pump.state == STATE_ON + assert hass.states.get(leak_sensor_name).state == STATE_ON + assert hass.states.get(pump_sensor_name).state == STATE_ON async def test_binary_sensors_ro_filter( - hass: HomeAssistant, config_entry_ro_filter, mqtt_mock: MqttMockHAClient + hass: HomeAssistant, mqtt_mock: MqttMockHAClient ) -> None: """Test DROP binary sensors for RO filters.""" - config_entry_ro_filter.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() + entry = config_entry_ro_filter() + entry.add_to_hass(hass) + assert await hass.config_entries.async_setup(entry.entry_id) leak_sensor_name = "binary_sensor.ro_filter_leak_detected" - hass.states.async_set(leak_sensor_name, STATE_UNKNOWN) + assert hass.states.get(leak_sensor_name).state == STATE_OFF async_fire_mqtt_message(hass, TEST_DATA_RO_FILTER_TOPIC, TEST_DATA_RO_FILTER_RESET) await hass.async_block_till_done() + assert hass.states.get(leak_sensor_name).state == STATE_OFF + async_fire_mqtt_message(hass, TEST_DATA_RO_FILTER_TOPIC, TEST_DATA_RO_FILTER) await hass.async_block_till_done() - - leak = hass.states.get(leak_sensor_name) - assert leak.state == STATE_ON + assert hass.states.get(leak_sensor_name).state == STATE_ON