Skip to content

Commit 4ce9449

Browse files
Filip RutkowskiFilip Rutkowski
authored andcommitted
Add test for deebot_client.Map._get_svg_traces_path
1 parent 73a7121 commit 4ce9449

File tree

2 files changed

+33
-4
lines changed

2 files changed

+33
-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: 30 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
from svg import (
@@ -15,6 +15,7 @@
1515
MoveToRel,
1616
PathData,
1717
Polygon,
18+
Scale,
1819
SmoothCubicBezierRel,
1920
Use,
2021
VerticalLineToRel,
@@ -155,6 +156,34 @@ async def on_change() -> None:
155156
assert not map._unsubscribers
156157

157158

159+
@patch(
160+
"deebot_client.util.decompress_7z_base64_data",
161+
Mock(return_value=b"\x10\x00\x00\x01\x00"),
162+
)
163+
async def test_Map_svg_traces_path(
164+
execute_mock: AsyncMock, event_bus_mock: Mock
165+
) -> None:
166+
map = Map(execute_mock, event_bus_mock)
167+
168+
path = map._get_svg_traces_path()
169+
assert path is None
170+
171+
map._update_trace_points("")
172+
path = map._get_svg_traces_path()
173+
174+
assert path == Path(
175+
fill="none",
176+
stroke="#fff",
177+
stroke_width=1.5,
178+
stroke_linejoin="round",
179+
vector_effect="non-scaling-stroke",
180+
transform=[
181+
Scale(0.2, -0.2),
182+
],
183+
d=[MoveTo(x=16, y=256)],
184+
)
185+
186+
158187
def test_compact_path() -> None:
159188
"""Test that the path is compacted correctly."""
160189
path = Path(

0 commit comments

Comments
 (0)