refactor: add durable transfer planning checkpoints

This commit is contained in:
jxxghp
2026-08-27 13:16:33 +08:00
parent 49d30e5fdf
commit 23bff6b2bb
41 changed files with 7401 additions and 1098 deletions
+30 -8
View File
@@ -1,6 +1,5 @@
from pathlib import Path
from app.domain.context import MediaInfo
from app.domain.meta.metabase import MetaBase
from app.modules.filemanager import FileManagerModule
@@ -78,15 +77,22 @@ def test_cloud_storage_preview_only_calculates_target_path():
)
guarded_storage = GuardedStorage()
transferinfo = FileManagerModule().transfer(
module = FileManagerModule()
checkpoint = module.plan_transfer(
fileitem=fileitem,
meta=meta,
mediainfo=mediainfo,
target_directory=target_directory,
source_oper=guarded_storage,
target_oper=guarded_storage,
preview=True,
)
transferinfo = module.execute_transfer_plan(
checkpoint,
meta=meta,
mediainfo=mediainfo,
source_oper=guarded_storage,
target_oper=guarded_storage,
)
assert transferinfo.success is True
assert transferinfo.need_notify is False
@@ -131,15 +137,22 @@ def test_local_storage_preview_skips_target_conflict_checks(tmp_path):
)
guarded_storage = GuardedStorage()
transferinfo = FileManagerModule().transfer(
module = FileManagerModule()
checkpoint = module.plan_transfer(
fileitem=fileitem,
meta=meta,
mediainfo=mediainfo,
target_directory=target_directory,
source_oper=guarded_storage,
target_oper=guarded_storage,
preview=True,
)
transferinfo = module.execute_transfer_plan(
checkpoint,
meta=meta,
mediainfo=mediainfo,
source_oper=guarded_storage,
target_oper=guarded_storage,
)
assert transferinfo.success is True
assert transferinfo.need_notify is False
@@ -188,15 +201,24 @@ def _build_bluray_dir_preview(
notify=True,
)
return FileManagerModule().transfer(
module = FileManagerModule()
source_oper = GuardedStorage()
target_oper = GuardedStorage()
checkpoint = module.plan_transfer(
fileitem=fileitem,
meta=meta,
mediainfo=mediainfo,
target_directory=target_directory,
source_oper=GuardedStorage(),
target_oper=GuardedStorage(),
source_oper=source_oper,
preview=True,
)
return module.execute_transfer_plan(
checkpoint,
meta=meta,
mediainfo=mediainfo,
source_oper=source_oper,
target_oper=target_oper,
)
def test_tv_bluray_dir_preview_preserves_disk_folder_from_meta_part():