feat: 增加采集任务重新执行入口 (#63)
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user