Skip to content

Commit 32610ab

Browse files
committed
fix: test
1 parent 361d429 commit 32610ab

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

roborock/version_1_apis/roborock_client_v1.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ class RoborockClientV1(RoborockClient, ABC):
150150
"""Roborock client base class for version 1 devices."""
151151

152152
_listeners: dict[str, ListenerModel] = {}
153-
_map_response_decoder: Callable[[RoborockMessage], MapResponse] | None = None
153+
_map_response_decoder: Callable[[RoborockMessage], MapResponse | None] | None = None
154154

155155
def __init__(self, device_info: DeviceData, security_data: SecurityData | None) -> None:
156156
"""Initializes the Roborock client."""
@@ -439,13 +439,14 @@ def on_message_received(self, messages: list[RoborockMessage]) -> None:
439439
elif data.payload and protocol == RoborockMessageProtocol.MAP_RESPONSE:
440440
if self._map_response_decoder is not None:
441441
map_response = self._map_response_decoder(data)
442-
queue = self._waiting_queue.get(map_response.request_id)
443-
if queue:
444-
queue.set_result(map_response.data)
445-
else:
446-
self._logger.debug(
447-
"Received unsolicited map response for request_id %s", map_response.request_id
448-
)
442+
if map_response is not None:
443+
queue = self._waiting_queue.get(map_response.request_id)
444+
if queue:
445+
queue.set_result(map_response.data)
446+
else:
447+
self._logger.debug(
448+
"Received unsolicited map response for request_id %s", map_response.request_id
449+
)
449450
else:
450451
queue = self._waiting_queue.get(data.seq)
451452
if queue:

tests/protocols/test_v1_protocol.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Tests for the v1 protocol message encoding and decoding."""
22

33
import json
4+
import logging
45
import pathlib
56
from collections.abc import Generator
67
from unittest.mock import patch
@@ -183,13 +184,14 @@ def test_create_map_response_decoder():
183184

184185
decoder = create_map_response_decoder(SECURITY_DATA)
185186
result = decoder(message)
186-
187+
assert result is not None
187188
assert result.request_id == 44508
188189
assert result.data == test_data
189190

190191

191-
def test_create_map_response_decoder_invalid_endpoint():
192+
def test_create_map_response_decoder_invalid_endpoint(caplog: pytest.LogCaptureFixture):
192193
"""Test map response decoder with invalid endpoint."""
194+
caplog.set_level(logging.DEBUG)
193195
# Create header with wrong endpoint
194196
header = b"wrongend" + b"\x00" * 8 + b"\xdc\xad" + b"\x00" * 6
195197
payload = header + b"encrypted_data"
@@ -204,9 +206,8 @@ def test_create_map_response_decoder_invalid_endpoint():
204206
)
205207

206208
decoder = create_map_response_decoder(SECURITY_DATA)
207-
208-
with pytest.raises(RoborockException, match="Invalid V1 map response endpoint"):
209-
decoder(message)
209+
assert decoder(message) is None
210+
assert "Received map response requested not made by this device, ignoring." in caplog.text
210211

211212

212213
def test_create_map_response_decoder_invalid_payload():

0 commit comments

Comments
 (0)