|
1 | 1 | """Tests for Shelly utils.""" |
2 | 2 |
|
3 | 3 | from typing import Any |
4 | | -from unittest.mock import Mock |
| 4 | +from unittest.mock import AsyncMock, Mock |
5 | 5 |
|
| 6 | +from aiohttp.web import Request |
6 | 7 | from aioshelly.const import ( |
7 | 8 | MODEL_1, |
8 | 9 | MODEL_1L, |
|
14 | 15 | MODEL_PLUS_2PM_V2, |
15 | 16 | MODEL_WALL_DISPLAY, |
16 | 17 | ) |
| 18 | +from aioshelly.rpc_device import WsServer |
17 | 19 | import pytest |
18 | 20 |
|
19 | 21 | from homeassistant.components.shelly.const import ( |
|
23 | 25 | UPTIME_DEVIATION, |
24 | 26 | ) |
25 | 27 | from homeassistant.components.shelly.utils import ( |
| 28 | + ShellyReceiver, |
26 | 29 | get_block_device_sleep_period, |
27 | 30 | get_block_input_triggers, |
28 | 31 | get_block_number_of_channels, |
@@ -303,3 +306,16 @@ def test_get_host(host: str, expected: str) -> None: |
303 | 306 | def test_mac_address_from_name(name: str, result: str | None) -> None: |
304 | 307 | """Test mac_address_from_name() function.""" |
305 | 308 | assert mac_address_from_name(name) == result |
| 309 | + |
| 310 | + |
| 311 | +async def test_shelly_receiver_get() -> None: |
| 312 | + """Test ShellyReceiver get method.""" |
| 313 | + ws_server = Mock(spec=WsServer) |
| 314 | + ws_server.websocket_handler = AsyncMock(return_value="test_response") |
| 315 | + receiver = ShellyReceiver(ws_server) |
| 316 | + mock_request = Mock(spec=Request) |
| 317 | + |
| 318 | + response = await receiver.get(mock_request) |
| 319 | + |
| 320 | + ws_server.websocket_handler.assert_awaited_once_with(mock_request) |
| 321 | + assert response == "test_response" |
0 commit comments