Add governed Wallonia and Brussels orthophotos
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user