feat: 校验进度条+单文件日志 (on_file 回调)
This commit is contained in:
1 parent
0f9866a031
commit
0b28d26a18
3 files changed
+55
-4
No files matched your search
@@ -428,3 +428,30 @@ def test_parse_smart_resume():
|
||||
assert transfer.parse_args(["--smart-resume", "s", "d"]).smart_resume is True
|
||||
assert transfer.parse_args(["--smart-check", "3", "s", "d"]).smart_check == 3
|
||||
assert transfer.parse_args(["s", "d"]).smart_check == 5
|
||||
|
||||
# ---------- 校验进度回调 ----------
|
||||
|
||||
def test_verify_recent_progress_callback(tmp_path):
|
||||
"""校验每个文件触发回调 (index, total, rel, ok)"""
|
||||
src = tmp_path / "s"; dst = tmp_path / "d"
|
||||
src.mkdir(); dst.mkdir()
|
||||
for i in range(3):
|
||||
(src / f"f{i}.txt").write_text("good" * 100)
|
||||
(dst / f"f{i}.txt").write_text("good" * 100)
|
||||
(dst / "f2.txt").write_text("corrupt") # 损坏一个
|
||||
events = []
|
||||
transfer.verify_recent_files(str(src), str(dst), check_count=3,
|
||||
on_file=lambda i, n, r, ok: events.append((i, n, r, ok)))
|
||||
assert len(events) == 3 # 每个文件都回调
|
||||
assert all(n == 3 for _, n, _, _ in events) # total 一致
|
||||
bad_events = [e for e in events if not e[3]]
|
||||
assert len(bad_events) == 1 and bad_events[0][2] == "f2.txt" # 损坏的被标记
|
||||
assert sum(1 for e in events if e[3]) == 2 # 其余通过
|
||||
|
||||
def test_verify_recent_callback_without_progress(tmp_path):
|
||||
"""不带回调时行为不变 (向后兼容)"""
|
||||
src = tmp_path / "s"; dst = tmp_path / "d"
|
||||
src.mkdir(); dst.mkdir()
|
||||
(src / "a.txt").write_text("x")
|
||||
(dst / "a.txt").write_text("x")
|
||||
assert transfer.verify_recent_files(str(src), str(dst)) == []
|
||||
Reference in new issue
Block a user