|
|
| import pathlib |
| ROOT=pathlib.Path(__file__).resolve().parents[1] |
|
|
| def test_version_400(): |
| assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.1" |
|
|
| def test_download_job_backend(): |
| route=(ROOT/"routes"/"downloads.py").read_text(encoding="utf-8") |
| svc=(ROOT/"services"/"download_jobs.py").read_text(encoding="utf-8") |
| assert "/api/download/jobs" in route |
| assert "/api/download/jobs/{job_id}/stream" in route |
| assert 'headers["Range"]=req_range' in route |
| assert "upstream server does not honor Range resume" in route |
| assert "class DownloadJobStore" in svc |
|
|
| def test_frontend_avoids_network_blob_buffering(): |
| js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") |
| start=js.index("async function downloadWithProgress") |
| end=js.index('document.addEventListener("click"',start) |
| block=js[start:end] |
| assert "chunks=[]" not in block |
| assert "new Blob(chunks" not in block |
| assert "/api/download/jobs" in block |
| assert "restoreActiveDownloadJob" in block |
| assert "HTTP Range" in block |
|
|
| def test_ocean_range_export_uses_safe_range_tool(): |
| ui=(ROOT/"ui_server.py").read_text(encoding="utf-8") |
| start=ui.index("def _apply_ocean_export_defaults") |
| block=ui[start:start+5000] |
| assert "mcp_marine_marine_export_range" in block |
| assert "start_date/end_date" in block |
| assert "单次最多 31 天" in block |
| assert "单日请求" in block |
|
|