Skip to content

Commit 07ee8f3

Browse files
Filip RutkowskiFilip Rutkowski
authored andcommitted
Add test for deebot_client.Map._get_svg_traces_path
1 parent 585bb2b commit 07ee8f3

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

deebot_client/map.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from PIL import Image, ImageColor, ImageOps, ImagePalette
1818
import svg
1919

20+
from deebot_client import util
2021
from deebot_client.events.map import CachedMapInfoEvent, MapChangedEvent
2122

2223
from .commands.json import GetMinorMap
@@ -38,7 +39,6 @@
3839
from .util import (
3940
OnChangedDict,
4041
OnChangedList,
41-
decompress_7z_base64_data,
4242
)
4343

4444
if TYPE_CHECKING:
@@ -385,7 +385,7 @@ async def on_map_subset(event: MapSubsetEvent) -> None:
385385

386386
def _update_trace_points(self, data: str) -> None:
387387
_LOGGER.debug("[_update_trace_points] Begin")
388-
trace_points = decompress_7z_base64_data(data)
388+
trace_points = util.decompress_7z_base64_data(data)
389389

390390
for i in range(0, len(trace_points), 5):
391391
position_x, position_y = struct.unpack("<hh", trace_points[i : i + 4])
@@ -612,7 +612,7 @@ def image(self) -> Image.Image:
612612

613613
def update_points(self, base64_data: str) -> None:
614614
"""Add map piece points."""
615-
decoded = decompress_7z_base64_data(base64_data)
615+
decoded = util.decompress_7z_base64_data(base64_data)
616616
old_crc32 = self._crc32
617617
self._crc32 = zlib.crc32(decoded)
618618

tests/test_map.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import asyncio
44
from typing import TYPE_CHECKING
5-
from unittest.mock import ANY, AsyncMock, Mock, call
5+
from unittest.mock import ANY, AsyncMock, Mock, call, patch
66

77
import pytest
88
import svg
@@ -141,6 +141,34 @@ async def on_change() -> None:
141141
assert not map._unsubscribers
142142

143143

144+
@patch(
145+
"deebot_client.util.decompress_7z_base64_data",
146+
Mock(return_value=b"\x10\x00\x00\x01\x00"),
147+
)
148+
async def test_Map_svg_traces_path(
149+
execute_mock: AsyncMock, event_bus_mock: Mock
150+
) -> None:
151+
map = Map(execute_mock, event_bus_mock)
152+
153+
path = map._get_svg_traces_path()
154+
assert path is None
155+
156+
map._update_trace_points("")
157+
path = map._get_svg_traces_path()
158+
159+
assert path == Path(
160+
fill="none",
161+
stroke="#fff",
162+
stroke_width=1.5,
163+
stroke_linejoin="round",
164+
vector_effect="non-scaling-stroke",
165+
transform=[
166+
svg.Scale(0.2, -0.2),
167+
],
168+
d=[svg.MoveTo(x=16, y=256)],
169+
)
170+
171+
144172
def test_compact_path() -> None:
145173
"""Test that the path is compacted correctly."""
146174
path = Path(

0 commit comments

Comments
 (0)