fix: reset visible run logs for new runs
This commit is contained in:
+93
-2
@@ -1150,7 +1150,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_tab_loads_latest_generate_run_log(self):
|
||||
def test_generate_tab_does_not_auto_mix_latest_generate_run_log(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
db.init_db(cfg["db_path"])
|
||||
@@ -1173,11 +1173,94 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab = GenerateTab(config=cfg)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
text = tab.run_log_view.toPlainText()
|
||||
self.assertEqual("generateRunLogView", tab.run_log_view.objectName())
|
||||
self.assertIn("phase=cover step=cover_request result=failed", tab.run_log_view.toPlainText())
|
||||
self.assertIn("本轮日志会在开始运行后显示", text)
|
||||
self.assertNotIn("phase=cover step=cover_request result=failed", text)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_tab_start_generate_resets_visible_log_for_current_run(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
accounts.create_account("主店", "alias-a", debug_port=9222, config=cfg)
|
||||
batch_id = db.create_batch(["input.xlsx"], path=cfg["db_path"])
|
||||
db.insert_tasks(
|
||||
batch_id,
|
||||
[
|
||||
{
|
||||
"source_file_abs": os.path.join(temp_dir, "input.xlsx"),
|
||||
"source_sheet": "商品",
|
||||
"source_row": 2,
|
||||
"account_name": "Excel主店",
|
||||
"alias": "alias-a",
|
||||
"item_id": "51100639510",
|
||||
}
|
||||
],
|
||||
path=cfg["db_path"],
|
||||
)
|
||||
task = db.list_tasks(batch_id=batch_id, path=cfg["db_path"])[0]
|
||||
db.set_collected(task.id, "旧标题", "old.jpg", path=cfg["db_path"])
|
||||
tab = GenerateTab(config=cfg)
|
||||
self.addCleanup(tab.close)
|
||||
tab.run_log_view.setPlainText("上一轮失败日志")
|
||||
|
||||
class FakeSignal:
|
||||
def __init__(self):
|
||||
self.callbacks = []
|
||||
|
||||
def connect(self, callback):
|
||||
self.callbacks.append(callback)
|
||||
|
||||
class FakeThread:
|
||||
def __init__(self):
|
||||
self.finished = FakeSignal()
|
||||
self.started = False
|
||||
|
||||
def start(self):
|
||||
self.started = True
|
||||
|
||||
fake_thread = FakeThread()
|
||||
with mock.patch("app.gui.run_worker", return_value=fake_thread):
|
||||
tab.start_generate()
|
||||
|
||||
text = tab.run_log_view.toPlainText()
|
||||
self.assertTrue(fake_thread.started)
|
||||
self.assertNotIn("上一轮失败日志", text)
|
||||
self.assertIn("本轮AI生成开始:任务 1 条", text)
|
||||
self.assertIn("生成封面:否", text)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_apply_tab_does_not_auto_mix_latest_apply_run_log(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
db.init_db(cfg["db_path"])
|
||||
run_id = db.create_run_log("apply", total=1, path=cfg["db_path"])
|
||||
db.add_run_log_event(
|
||||
run_id,
|
||||
"step=apply_update result=failed detail=上一轮更新失败",
|
||||
level="error",
|
||||
path=cfg["db_path"],
|
||||
)
|
||||
db.finish_run_log(
|
||||
run_id,
|
||||
status="done",
|
||||
done=1,
|
||||
failed_count=1,
|
||||
summary_json={"failed": 1},
|
||||
path=cfg["db_path"],
|
||||
)
|
||||
|
||||
tab = ApplyTab(config=cfg)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
text = tab.run_log_view.toPlainText()
|
||||
self.assertEqual("applyRunLogView", tab.run_log_view.objectName())
|
||||
self.assertIn("本轮日志会在开始运行后显示", text)
|
||||
self.assertNotIn("step=apply_update result=failed", text)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
def test_apply_tab_lists_generated_tasks_and_filters_by_batch_shop_status(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
@@ -1437,6 +1520,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
statuses = []
|
||||
tab = ApplyTab(config=cfg, status_callback=statuses.append)
|
||||
self.addCleanup(tab.close)
|
||||
tab.run_log_view.setPlainText("上一轮更新失败")
|
||||
|
||||
class FakeSignal:
|
||||
def __init__(self):
|
||||
@@ -1469,6 +1553,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertFalse(tab.apply_worker.dry_run)
|
||||
self.assertFalse(tab.apply_worker.parallel_accounts)
|
||||
self.assertEqual(1, tab.apply_worker.batch_size)
|
||||
log_text = tab.run_log_view.toPlainText()
|
||||
self.assertNotIn("上一轮更新失败", log_text)
|
||||
self.assertIn("本轮更新开始:任务 1 条,每批 1 条", log_text)
|
||||
self.assertFalse(tab.preview_update_button.isEnabled())
|
||||
self.assertFalse(tab.start_update_button.isEnabled())
|
||||
self.assertTrue(tab.stop_update_button.isEnabled())
|
||||
@@ -1515,6 +1602,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
statuses = []
|
||||
tab = ApplyTab(config=cfg, status_callback=statuses.append)
|
||||
self.addCleanup(tab.close)
|
||||
tab.run_log_view.setPlainText("上一轮检查失败")
|
||||
|
||||
class FakeSignal:
|
||||
def __init__(self):
|
||||
@@ -1543,6 +1631,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertTrue(tab.apply_worker.dry_run)
|
||||
self.assertTrue(tab.apply_worker.parallel_accounts)
|
||||
self.assertEqual(2, tab.apply_worker.max_parallel_accounts)
|
||||
log_text = tab.run_log_view.toPlainText()
|
||||
self.assertNotIn("上一轮检查失败", log_text)
|
||||
self.assertIn("本轮检查开始:任务 1 条,每批 1 条", log_text)
|
||||
self.assertEqual("开始检查本轮更新:1 条", statuses[-1])
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
Reference in New Issue
Block a user