Add governed Wallonia and Brussels orthophotos
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-26 22:02:10 +02:00
parent 0c328fd3d1
commit ec6f2d9061
17 changed files with 238 additions and 49 deletions
@@ -151,7 +151,66 @@ def test_orthophoto_product_registry_exposes_only_governed_official_layers() ->
assert keys[0] == "most_recent"
assert {"2025", "2012", "2008_2011", "2000_2003", "1979_1990", "1971"}.issubset(keys)
assert next(item for item in products if item["key"] == "most_recent")["supports_detection"] is True
assert all(item["supports_detection"] is False for item in products if item["key"] != "most_recent")
detection_keys = {item["key"] for item in products if item["supports_detection"]}
assert detection_keys == {"most_recent", "wallonia_latest", "brussels_latest"}
by_key = {item["key"]: item for item in products}
assert by_key["wallonia_latest"]["provider"] == "spw_orthophoto"
assert by_key["wallonia_latest"]["coverage_zone"] == "wallonia"
assert by_key["brussels_latest"]["provider"] == "urbis_orthophoto"
assert by_key["brussels_latest"]["coverage_zone"] == "brussels"
@pytest.mark.parametrize(
("product_key", "provider", "layer", "coverage_zone"),
[
("wallonia_latest", "spw_orthophoto", "0", "wallonia"),
("brussels_latest", "urbis_orthophoto", "Ortho", "brussels"),
],
)
def test_regional_orthophoto_products_bind_provider_and_governed_scope(
tmp_path, product_key: str, provider: str, layer: str, coverage_zone: str
) -> None:
project_id = uuid4()
payload = _selection_payload(product_key=product_key)
scope = Area(
id=uuid4(),
project_id=project_id,
name="Wallonia" if coverage_zone == "wallonia" else "Brussels-Capital Region",
geometry=from_shape(
MultiPolygon(
[
box(
payload.bbox.min_x - 0.01,
payload.bbox.min_y - 0.01,
payload.bbox.max_x + 0.01,
payload.bbox.max_y + 0.01,
)
]
),
srid=4326,
),
)
db = FakeSession({(Project, project_id): Project(id=project_id, name="Belgium")}, query_result=scope)
settings = Settings(_env_file=None, storage_root=str(tmp_path), orthophoto_resolution_m=1.0)
prepared = OrthophotoAcquisitionService._prepared_request(payload, settings)
result = OrthophotoAcquisitionService.acquire(
db,
project_id,
payload,
settings=settings,
opener=lambda *_args, **_kwargs: FakeImageResponse(
_source_tiff(prepared["width"], prepared["height"])
),
)
dataset = next(row for row in db.added if isinstance(row, Dataset))
assert result["provider"] == provider
assert result["layer"] == layer
assert dataset.source_name == provider
assert dataset.source_metadata["coverage_zone"] == coverage_zone
assert dataset.source_metadata["license_note"]
assert dataset.provenance_metadata["request_url"].startswith(prepared["product"].wms_url)
prepared = OrthophotoAcquisitionService._prepared_request(_selection_payload(product_key="1971"), settings)
assert prepared["params"]["LAYERS"] == "OKZPAN71VL"