|
1 | 1 | """Tests for the lifx integration light platform."""
|
2 |
| -import asyncio |
3 | 2 | from datetime import timedelta
|
4 | 3 | from unittest.mock import patch
|
5 | 4 |
|
6 |
| -from aiolifx.msgtypes import Acknowledgement, StateHostFirmware |
| 5 | +from aiolifx.message import Message |
7 | 6 | import aiolifx_effects
|
8 | 7 | import pytest
|
9 | 8 |
|
@@ -136,17 +135,29 @@ async def test_updates_wait_for_pending_messages(hass: HomeAssistant) -> None:
|
136 | 135 | )
|
137 | 136 | already_migrated_config_entry.add_to_hass(hass)
|
138 | 137 | bulb = _mocked_bulb()
|
139 |
| - mock_event = asyncio.Event() |
140 |
| - bulb.message = { |
141 |
| - 0: (Acknowledgement, None, None), |
142 |
| - 1: (StateHostFirmware, mock_event, None), |
143 |
| - } |
| 138 | + |
| 139 | + class MockMessages(dict): |
| 140 | + """Mocked message dictionary.""" |
| 141 | + |
| 142 | + def __init__(self) -> None: |
| 143 | + """Init a mock message queue.""" |
| 144 | + self.values: dict[int, tuple[Message, None, None]] = { |
| 145 | + 0: (Message, None, None), |
| 146 | + 1: (Message, None, None), |
| 147 | + } |
| 148 | + |
| 149 | + def __getitem__(self, __key: int) -> tuple[Message, None, None]: |
| 150 | + """Remove a message when it is requested.""" |
| 151 | + item = self.values[__key] |
| 152 | + del self.values[__key] |
| 153 | + return item |
| 154 | + |
144 | 155 | entity_id = "light.my_bulb"
|
| 156 | + _mock_messages = MockMessages() |
145 | 157 |
|
146 |
| - with _patch_discovery(device=bulb), _patch_config_flow_try_connect( |
| 158 | + with patch.dict(bulb.message, _mock_messages, clear=True), _patch_discovery( |
147 | 159 | device=bulb
|
148 |
| - ), _patch_device(device=bulb): |
149 |
| - mock_event.set() |
| 160 | + ), _patch_config_flow_try_connect(device=bulb), _patch_device(device=bulb): |
150 | 161 | await async_setup_component(hass, lifx.DOMAIN, {lifx.DOMAIN: {}})
|
151 | 162 | await hass.async_block_till_done()
|
152 | 163 |
|
|
0 commit comments