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
+45 -8
View File
@@ -3,6 +3,7 @@ from unittest.mock import MagicMock
import pytest
from app.application.transfer import TransferPlanningInput
from app.domain.context import MediaInfo
from app.domain.meta.metavideo import MetaVideo
from app.modules.filemanager.transhandler import TransHandler
@@ -28,17 +29,53 @@ def _transfer_without_episode(file_name: str) -> tuple[TransferInfo, MagicMock,
source_oper = MagicMock()
target_oper = MagicMock()
result = TransHandler().transfer_media(
fileitem=fileitem,
in_meta=meta,
mediainfo=mediainfo,
handler = TransHandler()
planning_input = TransferPlanningInput(
source_fileitem=fileitem.model_dump(mode="json"),
meta=meta.to_dict(),
mediainfo=mediainfo.to_dict(),
target_storage="local",
target_path=Path("/library"),
transfer_type="copy",
source_oper=source_oper,
target_oper=target_oper,
target_path="/library",
requested_transfer_type="copy",
media_type=MediaType.TV.value,
need_scrape=False,
need_rename=True,
need_notify=True,
preview=False,
)
try:
checkpoint = handler.plan_transfer(
planning_input,
meta=meta,
mediainfo=mediainfo,
source_oper=source_oper,
target_storage="local",
target_path=Path("/library"),
transfer_type="copy",
need_scrape=False,
need_rename=True,
need_notify=True,
overwrite_mode=None,
episodes_info=None,
preview=False,
)
except ValueError as error:
result = TransferInfo(
success=False,
message=str(error),
fileitem=fileitem,
fail_list=[fileitem.path],
transfer_type="copy",
need_notify=True,
)
else:
result = handler.execute_transfer_plan(
checkpoint,
meta=meta,
mediainfo=mediainfo,
source_oper=source_oper,
target_oper=target_oper,
)
return result, source_oper, target_oper