Federate official Belgium data sources
This commit is contained in:
@@ -12,6 +12,7 @@ from app.main import app
|
||||
from app.models import Area, Dataset, Project
|
||||
from app.schemas.coverage import CoverageBBox
|
||||
from app.services.coverage_registry_service import CoverageRegistryService, THEMES, ZONES
|
||||
from app.services.vector_feature_service import VectorFeatureService
|
||||
|
||||
|
||||
class FakeQuery:
|
||||
@@ -72,6 +73,44 @@ def test_coverage_catalog_uses_normalized_contracts_and_does_not_change_provider
|
||||
assert response.json()["data"]["themes"] == list(THEMES)
|
||||
|
||||
|
||||
def test_national_and_maritime_reference_layers_are_selection_analyzable() -> None:
|
||||
cases = (
|
||||
("ngi_adminvector", "belgium_municipalities", "administrative"),
|
||||
("rbins_marine_reporting_units", "marine_legal_scopes", "marine_environment"),
|
||||
("rbins_msp_2026", "marine_spatial_plan_2026", "maritime_planning"),
|
||||
)
|
||||
for source_name, layer_name, expected_theme in cases:
|
||||
dataset = Dataset(
|
||||
id=uuid4(),
|
||||
project_id=uuid4(),
|
||||
name=f"{layer_name}.geojson",
|
||||
dataset_type="vector",
|
||||
source="operator_official_import",
|
||||
source_name=source_name,
|
||||
reference_layer_name=layer_name,
|
||||
source_metadata={"authority_level": "authoritative"},
|
||||
status="ready",
|
||||
)
|
||||
|
||||
assert VectorFeatureService._dataset_theme(dataset) == expected_theme
|
||||
assert VectorFeatureService.supports_selection_summary(dataset) is True
|
||||
|
||||
|
||||
def test_national_scope_operator_assigns_explicit_map_themes() -> None:
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
operator = (root / "scripts" / "provision_belgium_north_sea_scope.py").read_text(encoding="utf-8")
|
||||
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
|
||||
assert '"belgium_municipalities": "administrative"' in operator
|
||||
assert '"marine_legal_scopes": "marine_environment"' in operator
|
||||
assert '"marine_spatial_plan_2026": "maritime_planning"' in operator
|
||||
assert "id: 'administrative'" in map_workspace
|
||||
assert "id: 'maritime_planning'" in map_workspace
|
||||
assert "id: 'marine_environment'" in map_workspace
|
||||
|
||||
|
||||
def test_coverage_resolver_only_reports_operational_for_materialized_ready_dataset() -> None:
|
||||
project_id = uuid4()
|
||||
project = SimpleNamespace(id=project_id)
|
||||
|
||||
Reference in New Issue
Block a user