"""Tests for the comfoconnect sensor platform.""" # import json from unittest.mock import patch import pytest from homeassistant.components.sensor import DOMAIN from homeassistant.setup import async_setup_component from tests.common import assert_setup_component COMPONENT = "comfoconnect" VALID_CONFIG = { COMPONENT: {"host": "1.2.3.4"}, DOMAIN: { "platform": COMPONENT, "resources": [ "current_humidity", "current_temperature", "supply_fan_duty", "power_usage", "preheater_power_total", ], }, } @pytest.fixture def mock_bridge_discover(): """Mock the bridge discover method.""" with patch("pycomfoconnect.bridge.Bridge.discover") as mock_bridge_discover: mock_bridge_discover.return_value[0].uuid.hex.return_value = "00" yield mock_bridge_discover @pytest.fixture def mock_comfoconnect_command(): """Mock the ComfoConnect connect method.""" with patch( "pycomfoconnect.comfoconnect.ComfoConnect._command" ) as mock_comfoconnect_command: yield mock_comfoconnect_command @pytest.fixture async def setup_sensor(hass, mock_bridge_discover, mock_comfoconnect_command): """Set up demo sensor component.""" with assert_setup_component(1, DOMAIN): await async_setup_component(hass, DOMAIN, VALID_CONFIG) await hass.async_block_till_done() async def test_sensors(hass, setup_sensor): """Test the sensors.""" state = hass.states.get("sensor.comfoairq_inside_humidity") assert state is not None assert state.name == "ComfoAirQ Inside humidity" assert state.attributes.get("unit_of_measurement") == "%" assert state.attributes.get("device_class") == "humidity" assert state.attributes.get("icon") is None state = hass.states.get("sensor.comfoairq_inside_temperature") assert state is not None assert state.name == "ComfoAirQ Inside temperature" assert state.attributes.get("unit_of_measurement") == "°C" assert state.attributes.get("device_class") == "temperature" assert state.attributes.get("icon") is None state = hass.states.get("sensor.comfoairq_supply_fan_duty") assert state is not None assert state.name == "ComfoAirQ Supply fan duty" assert state.attributes.get("unit_of_measurement") == "%" assert state.attributes.get("device_class") is None assert state.attributes.get("icon") == "mdi:fan-plus" state = hass.states.get("sensor.comfoairq_power_usage") assert state is not None assert state.name == "ComfoAirQ Power usage" assert state.attributes.get("unit_of_measurement") == "W" assert state.attributes.get("device_class") == "power" assert state.attributes.get("icon") is None state = hass.states.get("sensor.comfoairq_preheater_energy_total") assert state is not None assert state.name == "ComfoAirQ Preheater energy total" assert state.attributes.get("unit_of_measurement") == "kWh" assert state.attributes.get("device_class") == "energy" assert state.attributes.get("icon") is None