feat: 任务列表显示店铺名和执行用时 (#136)

This commit is contained in:
chengma
2026-08-11 11:17:44 +08:00
parent 6d30115c7e
commit e354dddad6
10 changed files with 163 additions and 28 deletions
+27
View File
@@ -258,6 +258,7 @@ class TaskRepositoryTests(unittest.TestCase):
{
"goods_id": "10001",
"title": "测试商品",
"shop_name": "测试店铺",
"price_granularity": "color",
"dimensions": [],
"skus": [{"price_cent": 990}],
@@ -269,12 +270,38 @@ class TaskRepositoryTests(unittest.TestCase):
TaskStatus.RESULT_PENDING,
)
self.assertEqual(event.status, OutboxStatus.PENDING)
summary = self.repository.list_tasks()[0]
self.assertEqual(summary.shop_name, "测试店铺")
self.assertEqual(summary.latest_run_status, RunStatus.SUCCEEDED)
self.repository.mark_outbox_sent(event.id)
self.assertEqual(
self.repository.get_task("TASK-RUN").status,
TaskStatus.SUCCEEDED,
)
def test_list_uses_latest_run_duration_and_clamps_negative_value(self):
self.repository.add_claimed_task(self._task("TASK-DURATION"))
started = self.repository.start_collect_run("TASK-DURATION", "USB-001")
connection = open_database(self.db_path)
try:
with connection:
connection.execute(
"UPDATE task_runs SET run_status = 'failed',"
" started_at = ?, finished_at = ? WHERE attempt_id = ?",
(
"2026-08-11T08:00:10Z",
"2026-08-11T08:00:05Z",
started.attempt_id,
),
)
finally:
connection.close()
summary = self.repository.list_tasks()[0]
self.assertEqual(summary.latest_run_status, RunStatus.FAILED)
self.assertEqual(summary.duration_seconds, 0)
def test_latest_result_outbox_excludes_newer_failure_event(self):
self.repository.add_claimed_task(self._task("TASK-REPORT"))
first = self.repository.start_collect_run("TASK-REPORT", "USB-001")