"""Tests for the sensor platform.""" from unittest.mock import AsyncMock from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er from . import ( FAKE_DUAL_HEAD_RGBWW_BULB, FAKE_MAC, FAKE_SOCKET_WITH_POWER_MONITORING, _mocked_wizlight, _patch_discovery, _patch_wizlight, async_push_update, async_setup_integration, ) async def test_signal_strength(hass: HomeAssistant) -> None: """Test signal strength.""" bulb, entry = await async_setup_integration( hass, bulb_type=FAKE_DUAL_HEAD_RGBWW_BULB ) entity_id = "sensor.mock_title_signal_strength" entity_registry = er.async_get(hass) reg_entry = entity_registry.async_get(entity_id) assert reg_entry.unique_id == f"{FAKE_MAC}_rssi" updated_entity = entity_registry.async_update_entity( entity_id=entity_id, disabled_by=None ) assert not updated_entity.disabled with _patch_discovery(), _patch_wizlight(device=bulb): await hass.config_entries.async_reload(entry.entry_id) await hass.async_block_till_done() assert hass.states.get(entity_id).state == "-55" await async_push_update(hass, bulb, {"mac": FAKE_MAC, "rssi": -50}) assert hass.states.get(entity_id).state == "-50" async def test_power_monitoring(hass: HomeAssistant) -> None: """Test power monitoring.""" socket = _mocked_wizlight(None, None, FAKE_SOCKET_WITH_POWER_MONITORING) socket.power_monitoring = None socket.get_power = AsyncMock(return_value=5.123) _, entry = await async_setup_integration( hass, wizlight=socket, bulb_type=FAKE_SOCKET_WITH_POWER_MONITORING ) entity_id = "sensor.mock_title_current_power" entity_registry = er.async_get(hass) reg_entry = entity_registry.async_get(entity_id) assert reg_entry.unique_id == f"{FAKE_MAC}_power" updated_entity = entity_registry.async_update_entity( entity_id=entity_id, disabled_by=None ) assert not updated_entity.disabled with _patch_discovery(), _patch_wizlight(device=socket): await hass.config_entries.async_reload(entry.entry_id) await hass.async_block_till_done() assert hass.states.get(entity_id).state == "5.123" await async_push_update(hass, socket, {"mac": FAKE_MAC, "pc": 800}) assert hass.states.get(entity_id).state == "0.8"