File size: 1,422 Bytes
f9dcec9 c175ac0 f9dcec9 807bd1a f9dcec9 807bd1a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import pathlib
ROOT=pathlib.Path(__file__).resolve().parents[1]
def test_version_400():
assert (ROOT/'VERSION').read_text(encoding='utf-8').strip()=='4.6.20'
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
|