added formulas
This commit is contained in:
Binary file not shown.
@@ -23,7 +23,9 @@ def _artifact_path(job_id: str) -> Path:
|
|||||||
status_code=status.HTTP_409_CONFLICT,
|
status_code=status.HTTP_409_CONFLICT,
|
||||||
detail={"code": "JOB_NOT_READY", "detail": "Job is not finished yet"},
|
detail={"code": "JOB_NOT_READY", "detail": "Job is not finished yet"},
|
||||||
)
|
)
|
||||||
uri = (record.get("result") or {}).get("uri")
|
result = record.get("result") or {}
|
||||||
|
data = result.get("data") if isinstance(result.get("data"), dict) else {}
|
||||||
|
uri = result.get("uri") or data.get("uri")
|
||||||
if not uri:
|
if not uri:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from types import SimpleNamespace
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import rasterio
|
import rasterio
|
||||||
@@ -8,6 +9,7 @@ import rasterio
|
|||||||
from app.core import coverage as coverage_core
|
from app.core import coverage as coverage_core
|
||||||
from app.core.antenna import AntennaPattern, gain
|
from app.core.antenna import AntennaPattern, gain
|
||||||
from app.core.coverage import compute_coverage
|
from app.core.coverage import compute_coverage
|
||||||
|
from app.routers import jobs as jobs_router
|
||||||
from app.core.surface import SurfaceProfile, SurfaceSample
|
from app.core.surface import SurfaceProfile, SurfaceSample
|
||||||
from app.core.vegetation import WORLDCOVER_P833, p833_coefficients_for_class
|
from app.core.vegetation import WORLDCOVER_P833, p833_coefficients_for_class
|
||||||
from app.models.coverage import CoverageRequest
|
from app.models.coverage import CoverageRequest
|
||||||
@@ -24,6 +26,30 @@ def test_jobs_store_roundtrip() -> None:
|
|||||||
assert response.result == {"ok": True}
|
assert response.result == {"ok": True}
|
||||||
|
|
||||||
|
|
||||||
|
def test_job_artifact_path_supports_nested_coverage_uri(
|
||||||
|
monkeypatch: pytest.MonkeyPatch,
|
||||||
|
tmp_path: Path,
|
||||||
|
) -> None:
|
||||||
|
artifact = tmp_path / "coverage.png"
|
||||||
|
artifact.write_bytes(b"png")
|
||||||
|
job_id = jobs.create_job("coverage", {"model": "fspl"})
|
||||||
|
jobs.update_job(
|
||||||
|
job_id,
|
||||||
|
status="done",
|
||||||
|
result={
|
||||||
|
"kind": "coverage",
|
||||||
|
"data": {"kind": "coverage_raster", "uri": str(artifact)},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
monkeypatch.setattr(
|
||||||
|
jobs_router,
|
||||||
|
"get_settings",
|
||||||
|
lambda: SimpleNamespace(jobs_output_path=tmp_path),
|
||||||
|
)
|
||||||
|
|
||||||
|
assert jobs_router._artifact_path(job_id) == artifact.resolve()
|
||||||
|
|
||||||
|
|
||||||
def test_coverage_fspl_geojson() -> None:
|
def test_coverage_fspl_geojson() -> None:
|
||||||
request = _coverage_request(format="geojson", radius_m=5000, range_step_m=500)
|
request = _coverage_request(format="geojson", radius_m=5000, range_step_m=500)
|
||||||
result = compute_coverage(request)
|
result = compute_coverage(request)
|
||||||
|
|||||||
Reference in New Issue
Block a user