step 8: harden docs and prepare rebuilt beta
This commit is contained in:
@@ -4,8 +4,10 @@ from typing import Any
|
||||
|
||||
import dpg_map as dpgm
|
||||
from dpg_map.commands import CommandKind, MapCommand
|
||||
from dpg_map.providers import TileProvider
|
||||
from dpg_map.renderer import MapRenderer, drain_renderer_commands
|
||||
from dpg_map.state import DirtyFlags, create_map_state
|
||||
from dpg_map.tiles import TileID, TileResult, TileStatus
|
||||
|
||||
|
||||
class FakeDpg:
|
||||
@@ -115,3 +117,60 @@ def test_overlay_update_drain_sets_only_overlay_dirty() -> None:
|
||||
drain_renderer_commands(state)
|
||||
|
||||
assert state.dirty == DirtyFlags.OVERLAYS
|
||||
|
||||
|
||||
def test_provider_switch_keeps_overlays_and_invalidates_tiles() -> None:
|
||||
provider = TileProvider(
|
||||
name="renderer-switch-provider",
|
||||
url_template="https://tiles.example.test/{z}/{x}/{y}.png",
|
||||
min_zoom=3,
|
||||
max_zoom=4,
|
||||
attribution="Example",
|
||||
)
|
||||
dpgm.register_provider(provider)
|
||||
try:
|
||||
state = create_map_state(tag="provider-switch", center=(47.0, 2.0), zoom=8)
|
||||
dpgm.add_marker("vehicle", lat=47.0, lon=2.0, map_tag="provider-switch")
|
||||
state.command_queue.drain()
|
||||
state.dirty = DirtyFlags.NONE
|
||||
tile_id = TileID("osm", 3, 1, 2)
|
||||
state.tile_manager._result_queue.put(
|
||||
TileResult(
|
||||
tile_id,
|
||||
generation=state.generation,
|
||||
status=TileStatus.READY,
|
||||
width=1,
|
||||
height=1,
|
||||
pixels=(1.0, 1.0, 1.0, 1.0),
|
||||
source="disk",
|
||||
)
|
||||
)
|
||||
state.tile_manager.drain_results(generation=state.generation, provider_name="osm")
|
||||
state.tile_manager.set_texture_tag(tile_id, "old-texture")
|
||||
|
||||
dpgm.set_provider("renderer-switch-provider", map_tag="provider-switch")
|
||||
drain_renderer_commands(state)
|
||||
|
||||
assert "vehicle" in state.overlays
|
||||
assert state.center == (47.0, 2.0)
|
||||
assert state.zoom == 4
|
||||
assert state.generation == 1
|
||||
assert state.provider.name == "renderer-switch-provider"
|
||||
assert state.dirty & DirtyFlags.PROVIDER
|
||||
assert state.dirty & DirtyFlags.TILES
|
||||
assert state.dirty & DirtyFlags.OVERLAYS
|
||||
assert state.tile_manager.get_ready_tile(tile_id) is None
|
||||
assert state.tile_manager.take_texture_deletions() == ["old-texture"]
|
||||
finally:
|
||||
dpgm.unregister_provider("renderer-switch-provider")
|
||||
|
||||
|
||||
def test_map_scoped_clear_disk_cache_command_keeps_dearpygui_out_of_caller_thread() -> None:
|
||||
state = create_map_state(tag="clear-disk-command")
|
||||
state.dirty = DirtyFlags.NONE
|
||||
|
||||
dpgm.clear_disk_cache(map_tag="clear-disk-command")
|
||||
|
||||
commands = state.command_queue.drain()
|
||||
assert [command.kind for command in commands] == [CommandKind.CLEAR_DISK_CACHE]
|
||||
assert state.dirty == DirtyFlags.TILES
|
||||
|
||||
Reference in New Issue
Block a user