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