feat: include failed step in task errors

This commit is contained in:
chengma
2026-07-08 11:08:01 +08:00
parent ffbad8e64d
commit 75d545f182
7 changed files with 212 additions and 23 deletions
+57 -1
View File
@@ -163,6 +163,62 @@ class GuiTests(TempDirMixin, unittest.TestCase):
model.data(model.index(0, 3), gui.Qt.ToolTipRole),
)
def test_workflow_failed_tooltips_show_failed_step_and_reason(self):
account = SimpleNamespace(alias="papa", account_name="papa 店铺")
collect_task = SimpleNamespace(
alias="papa",
account_name="papa 店铺",
item_id="25120403046",
stage="imported",
status="failed",
last_error="读封面失败:图片超过大小上限",
)
generate_task = SimpleNamespace(
alias="papa",
account_name="papa 店铺",
item_id="26887160467",
old_title="旧标题",
new_title="",
stage="collected",
status="failed",
last_error="请求生成标题失败:cmhub 上游生成失败",
collect_attempts=1,
generate_attempts=1,
apply_attempts=0,
committed=0,
)
apply_task = SimpleNamespace(
alias="papa",
account_name="papa 店铺",
item_id="28431952912",
new_title="新标题",
new_cover_path="new.jpg",
stage="generated",
status="failed",
last_error="点击更新失败:按钮禁用",
)
collect_model = gui.TaskTableModel()
collect_model.set_tasks([collect_task], [account])
self.assertEqual(
"读封面失败:图片超过大小上限",
collect_model.data(collect_model.index(0, 3), gui.Qt.ToolTipRole),
)
generate_model = gui.GenerateTaskTableModel()
generate_model.set_tasks([generate_task], [account])
self.assertEqual(
"请求生成标题失败:cmhub 上游生成失败",
generate_model.data(generate_model.index(0, 4), gui.Qt.ToolTipRole),
)
apply_model = gui.ApplyTaskTableModel()
apply_model.set_tasks([apply_task], [account])
self.assertEqual(
"点击更新失败:按钮禁用",
apply_model.data(apply_model.index(0, 5), gui.Qt.ToolTipRole),
)
def test_main_window_has_five_tabs_in_workflow_order(self):
with self.make_temp_dir() as temp_dir:
window = MainWindow(config=self.make_config(temp_dir))
@@ -3343,7 +3399,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
self.assertEqual(1, by_alias["alias-a"].committed)
self.assertEqual("generated", by_alias["alias-b"].stage)
self.assertEqual("failed", by_alias["alias-b"].status)
self.assertEqual("UPDATE_DISABLED", by_alias["alias-b"].last_error)
self.assertEqual("更新商品失败:UPDATE_DISABLED", by_alias["alias-b"].last_error)
self.assertEqual(0, by_alias["alias-b"].committed)
self.assertEqual("skipped", by_alias["missing"].status)
self.assertEqual("别名未匹配账号", by_alias["missing"].last_error)