python-map-manager/tests/test_tile_manager_cache.py
2025-12-02 09:09:22 +01:00

35 lines
1.2 KiB
Python

import unittest
import tempfile
import os
from PIL import Image
from map_manager.services import OpenStreetMapService
from map_manager.tile_manager import MapTileManager
class TestTileManagerCacheBehavior(unittest.TestCase):
def test_cache_hit_and_placeholder(self):
service = OpenStreetMapService()
with tempfile.TemporaryDirectory() as td:
mgr = MapTileManager(service, cache_root_directory=td, enable_online_tile_fetching=False, tile_pixel_size=64)
# Create a cached tile file
p = mgr._get_tile_cache_file_path(5, 10, 12)
p.parent.mkdir(parents=True, exist_ok=True)
img = Image.new("RGB", (64, 64), (255, 0, 0))
img.save(p)
# Now get_tile_image should load from cache
loaded = mgr.get_tile_image(5, 10, 12)
self.assertIsNotNone(loaded)
self.assertEqual(loaded.size, (64, 64))
# For a missing tile (cache miss) and online disabled, should return a placeholder image
missing = mgr.get_tile_image(6, 11, 13)
self.assertIsNotNone(missing)
# Placeholder should have expected tile size
self.assertEqual(missing.size, (64, 64))
if __name__ == '__main__':
unittest.main()