fix: 优化重新采集取消交互 (#82)
This commit is contained in:
@@ -194,6 +194,40 @@ class CollectTaskServiceTest(unittest.TestCase):
|
||||
self.repository.get_task("COL-OTHER").status, TaskStatus.CLAIMED
|
||||
)
|
||||
|
||||
def test_selected_task_cancelled_before_collector_starts_is_persisted(self):
|
||||
self.repository.add_claimed_task(
|
||||
NewClaimedTask(
|
||||
remote_task_id="COL-CANCEL",
|
||||
task_type=TaskType.COLLECT,
|
||||
goods_url="https://example.test/COL-CANCEL",
|
||||
)
|
||||
)
|
||||
calls = []
|
||||
|
||||
class AcceptGateway:
|
||||
def submit_failure(self, *_args):
|
||||
return SubmissionReceipt(
|
||||
True, "FAILURE-001", "2026-08-07T08:00:00Z"
|
||||
)
|
||||
|
||||
service = CollectTaskService(
|
||||
AcceptGateway(),
|
||||
self.repository,
|
||||
self.client,
|
||||
"USB-001",
|
||||
cancelled=lambda: True,
|
||||
collect_service_factory=lambda *_args: FakeCollector(calls),
|
||||
)
|
||||
|
||||
outcome = service.execute_selected("COL-CANCEL")
|
||||
|
||||
self.assertEqual(outcome.kind, "cancelled")
|
||||
self.assertEqual(calls, [])
|
||||
self.assertEqual(
|
||||
self.repository.get_task("COL-CANCEL").status,
|
||||
TaskStatus.CANCELLED,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user