Faire du relief orienté la seule couche produite et affichée

PANEL_VIZ ne contient plus que relief_oriente et pilote désormais tout :
le pipeline sans --only ne produit que cette couche, la génération lancée
depuis la carte aussi, et la carte ne liste ni ne sert en tuiles (panneau,
XYZ, TileJSON, WMTS, JOSM) les autres visualisations présentes sur disque.
Les autres visualisations restent calculables explicitement avec --only.

Corrige au passage _panel_viz_steps, qui ne retenait que les couches dont
le nom de fichier diffère du nom d'étape : la génération depuis la carte
ne produisait que l'openness positive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Antoine Jacquin
2026-09-27 00:10:08 +02:00
parent 0d3c3ba8bc
commit 31645a42e8
10 changed files with 76 additions and 22 deletions

View File

@ -18,9 +18,12 @@ class _FakeRequest:
"port": 8975})()
def _setup(tmp_path, monkeypatch, layers=("aspect", "slope")):
def _setup(tmp_path, monkeypatch, layers=("aspect", "slope"), panel=None):
"""Dalle factice ; panel=None lève la restriction PANEL_VIZ pour que les
couches de test (aspect, slope) soient servies."""
import lidar_pipeline.mapserve as mapserve
from lidar_pipeline import tiles
from lidar_pipeline import index, tiles
monkeypatch.setattr(index, "PANEL_VIZ", panel)
_make_dalle(tmp_path, 1054, 6882, list(layers))
monkeypatch.setattr(mapserve, "OUTPUT_DIR", tmp_path)
tiles.source_index(tmp_path, force=True)
@ -209,6 +212,19 @@ def test_map_meta(tmp_path, monkeypatch):
assert meta["default_layers"] == ["relief_oriente"]
def test_only_panel_layers_are_served(tmp_path, monkeypatch):
"""Seules les couches de PANEL_VIZ sont affichées et servies ; la
génération depuis la carte ne produit qu'elles."""
from fastapi import HTTPException
mapserve = _setup(tmp_path, monkeypatch, layers=("relief_oriente", "aspect", "slope"),
panel=("relief_oriente",))
meta = mapserve.map_meta()
assert [l["key"] for l in meta["layers"]] == ["relief_oriente"]
with pytest.raises(HTTPException):
asyncio.run(mapserve.tile("aspect", 15, 1, "1.png"))
assert mapserve._panel_viz_steps() == ["relief_oriente"]
def test_map_tile_info(tmp_path, monkeypatch):
"""/api/map/tile identifie la dalle sous un point et lit ses métadonnées."""
mapserve = _setup(tmp_path, monkeypatch)
@ -542,11 +558,8 @@ def _reset_bg(mapserve):
def test_tile_cache_only_never_renders(tmp_path, monkeypatch):
"""Mode cache seule : tuile manquante = transparente non mémorisable."""
import lidar_pipeline.mapserve as mapserve
mapserve = _setup(tmp_path, monkeypatch, layers=("slope",))
from lidar_pipeline import tiles
_make_dalle(tmp_path, 1054, 6882, ["slope"])
monkeypatch.setattr(mapserve, "OUTPUT_DIR", tmp_path)
tiles.source_index(tmp_path, force=True)
monkeypatch.setenv("LIDAR_TILE_CACHE_ONLY", "1")
z = 15
x, y = _tile_of_cell(1054, 6882, z)