File size: 1,499 Bytes
f1d6af4
 
 
 
 
0d11aa0
f1d6af4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40

import pathlib
ROOT=pathlib.Path(__file__).resolve().parents[1]

def test_version_420():
    assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.1"

def test_manifest_has_filename_and_sizes():
    svc=(ROOT/"services"/"ocean_batch.py").read_text(encoding="utf-8")
    assert '"filename"' in svc
    assert '"size_bytes"' in svc
    assert '"known_size_bytes"' in svc
    assert '"known_size_file_count"' in svc

def test_frontend_has_one_click_batch_download():
    js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8")
    assert "function startOceanBatchDownloadAll" in js
    assert "function runOceanBatchDownloadQueue" in js
    assert "function waitManagedDownloadStatus" in js
    assert "下载全部" in js
    assert "查看文件" in js

def test_batch_download_uses_managed_range_jobs():
    js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8")
    assert 'j("/api/download/jobs"' in js
    assert "triggerBrowserSave(child.stream_url" in js
    assert "resume_supported" in js
    assert "30 秒无新字节" in js

def test_queue_persists_across_page_refresh():
    js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8")
    assert "ocean_batch_download_queue:" in js
    assert "restoreOceanBatchDownloadQueue" in js
    assert "localStorage.setItem" in js

def test_batch_download_css():
    css=(ROOT/"static"/"css"/"app.css").read_text(encoding="utf-8")
    assert ".ocean-batch-download-queue" in css
    assert ".ocean-batch-file-list" in css