feat: 增加采集任务重新执行入口 (#63)

This commit is contained in:
chengma
2026-08-09 21:44:29 +08:00
parent 72821eaaef
commit eda3661604
12 changed files with 509 additions and 27 deletions
+36 -1
View File
@@ -4,7 +4,12 @@ import tempfile
import unittest
from pathlib import Path
from src.admin_gateway import AdminTask, ClaimCapabilities, ClientInfo
from src.admin_gateway import (
AdminTask,
ClaimCapabilities,
ClientInfo,
SubmissionReceipt,
)
from src.collect_task_service import CollectTaskService
from src.mock_admin_gateway import MockAdminGateway
from src.pdd_collect_service import PddCollectError
@@ -159,6 +164,36 @@ class CollectTaskServiceTest(unittest.TestCase):
)
self.assertEqual(self.gateway.submission_count, 1)
def test_execute_selected_only_runs_requested_local_task(self):
for task_id in ("COL-SELECTED", "COL-OTHER"):
self.repository.add_claimed_task(
NewClaimedTask(
remote_task_id=task_id,
task_type=TaskType.COLLECT,
goods_url=f"https://example.test/{task_id}",
)
)
calls = []
class AcceptGateway:
def submit_result(self, *_args):
return SubmissionReceipt(True, "RESULT-001", "2026-08-07T08:00:00Z")
service = CollectTaskService(
AcceptGateway(),
self.repository,
self.client,
"USB-001",
collect_service_factory=lambda *_args: FakeCollector(calls),
)
outcome = service.execute_selected("COL-SELECTED")
self.assertEqual(outcome.kind, "succeeded")
self.assertEqual(calls, ["COL-SELECTED"])
self.assertEqual(
self.repository.get_task("COL-OTHER").status, TaskStatus.CLAIMED
)
if __name__ == "__main__":
unittest.main()