35 lines
1.2 KiB
Python
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()
|