T-575 优化AI生成图片失败反馈
This commit is contained in:
@@ -2048,6 +2048,90 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_cover_progress_bar_marks_failed_segment(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
tab = GenerateTab(config=self.make_config(temp_dir))
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
tab._update_generate_progress(
|
||||
{
|
||||
"total": 13,
|
||||
"title_total": 13,
|
||||
"title_done": 13,
|
||||
"cover_total": 13,
|
||||
"cover_done": 11,
|
||||
"failed": 2,
|
||||
"generate_cover": True,
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual("图片 11/13,失败 2", tab.cover_progress_label.text())
|
||||
self.assertEqual((11, 2, 13), tab.cover_progress_bar.segments())
|
||||
self.assertEqual(13, tab.cover_progress_bar.maximum())
|
||||
self.assertEqual(13, tab.cover_progress_bar.value())
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_finished_shows_chinese_summary_for_failed_images(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
tab = GenerateTab(config=self.make_config(temp_dir))
|
||||
self.addCleanup(tab.close)
|
||||
tab._title_elapsed_seconds = 120
|
||||
tab._cover_elapsed_seconds = 372
|
||||
payload = {
|
||||
"total": 13,
|
||||
"title_total": 13,
|
||||
"title_done": 13,
|
||||
"cover_total": 13,
|
||||
"cover_done": 11,
|
||||
"failed": 2,
|
||||
"generate_cover": True,
|
||||
}
|
||||
|
||||
with mock.patch.object(tab, "refresh_tasks"), \
|
||||
mock.patch("app.gui.tabs.generate.QMessageBox.warning") as warning, \
|
||||
mock.patch("app.gui.tabs.generate.QMessageBox.information") as information:
|
||||
tab._on_generate_finished(payload)
|
||||
|
||||
warning.assert_called_once()
|
||||
information.assert_not_called()
|
||||
self.assertEqual("AI生成完成,有失败任务", warning.call_args[0][1])
|
||||
self.assertIn("标题 13/13", warning.call_args[0][2])
|
||||
self.assertIn("图片 11/13", warning.call_args[0][2])
|
||||
self.assertIn("失败 2", warning.call_args[0][2])
|
||||
self.assertIn("用时 492 秒", warning.call_args[0][2])
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_cancelled_shows_chinese_summary_dialog(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
tab = GenerateTab(config=self.make_config(temp_dir))
|
||||
self.addCleanup(tab.close)
|
||||
tab._title_elapsed_seconds = 80
|
||||
tab._cover_elapsed_seconds = 100
|
||||
payload = {
|
||||
"total": 13,
|
||||
"title_total": 13,
|
||||
"title_done": 8,
|
||||
"cover_total": 13,
|
||||
"cover_done": 5,
|
||||
"failed": 1,
|
||||
"generate_cover": True,
|
||||
"cancelled": True,
|
||||
}
|
||||
|
||||
with mock.patch.object(tab, "refresh_tasks"), \
|
||||
mock.patch("app.gui.tabs.generate.QMessageBox.warning") as warning:
|
||||
tab._on_generate_cancelled(payload)
|
||||
|
||||
warning.assert_called_once()
|
||||
self.assertEqual("AI生成已停止", warning.call_args[0][1])
|
||||
self.assertIn("标题 8/13", warning.call_args[0][2])
|
||||
self.assertIn("图片 5/13", warning.call_args[0][2])
|
||||
self.assertIn("未完成任务可再次点击开始生成继续处理", warning.call_args[0][2])
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_tab_shows_cmhub_balance_and_billing_error(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
|
||||
Reference in New Issue
Block a user