36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from dpg_map.commands import CommandKind, MapCommand, MapCommandQueue
|
|
|
|
|
|
def test_overlay_updates_coalesce_by_overlay_tag() -> None:
|
|
queue = MapCommandQueue()
|
|
|
|
queue.put(MapCommand(CommandKind.UPDATE_OVERLAY, "map", {"tag": "vehicle", "lat": 1.0}))
|
|
queue.put(MapCommand(CommandKind.UPDATE_OVERLAY, "map", {"tag": "vehicle", "lat": 2.0}))
|
|
queue.put(MapCommand(CommandKind.UPDATE_OVERLAY, "map", {"tag": "other", "lat": 3.0}))
|
|
|
|
drained = queue.drain()
|
|
|
|
assert len(drained) == 2
|
|
assert drained[0].payload == {"tag": "vehicle", "lat": 2.0}
|
|
assert drained[1].payload == {"tag": "other", "lat": 3.0}
|
|
|
|
|
|
def test_latest_view_update_wins_but_structural_commands_keep_order() -> None:
|
|
queue = MapCommandQueue()
|
|
|
|
queue.put(MapCommand(CommandKind.ADD_OVERLAY, "map", {"tag": "a"}))
|
|
queue.put(MapCommand(CommandKind.SET_VIEW, "map", {"zoom": 3}))
|
|
queue.put(MapCommand(CommandKind.SET_VIEW, "map", {"zoom": 4}))
|
|
queue.put(MapCommand(CommandKind.DELETE_OVERLAY, "map", {"tag": "a"}))
|
|
|
|
drained = queue.drain()
|
|
|
|
assert [command.kind for command in drained] == [
|
|
CommandKind.ADD_OVERLAY,
|
|
CommandKind.SET_VIEW,
|
|
CommandKind.DELETE_OVERLAY,
|
|
]
|
|
assert drained[1].payload == {"zoom": 4}
|