T-584 AI生成提示词区重排
This commit is contained in:
@@ -1792,11 +1792,13 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
def test_generate_tab_has_prompt_editors_and_task_table(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
title_prompt_path = os.path.join(temp_dir, "title_prompt.txt")
|
||||
title_templates_dir = os.path.join(temp_dir, "prompts", "title")
|
||||
cover_prompts_dir = os.path.join(temp_dir, "prompts", "cover")
|
||||
tab = GenerateTab(
|
||||
config=self.make_config(temp_dir),
|
||||
title_prompt_path=title_prompt_path,
|
||||
cover_prompts_dir=cover_prompts_dir,
|
||||
title_templates_dir=title_templates_dir,
|
||||
)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
@@ -1804,9 +1806,14 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertIsInstance(tab.cover_prompt_edit, QPlainTextEdit)
|
||||
self.assertIsInstance(tab.task_table, QTableView)
|
||||
self.assertIsInstance(tab.generate_mode_combo, QComboBox)
|
||||
self.assertEqual("titleTemplateCombo", tab.title_template_combo.objectName())
|
||||
self.assertEqual("newTitleTemplateButton", tab.new_title_template_button.objectName())
|
||||
self.assertEqual("saveTitleTemplateButton", tab.save_title_template_button.objectName())
|
||||
self.assertEqual("titleTemplateActionsButton", tab.title_template_actions_button.objectName())
|
||||
self.assertEqual("标题提示词", tab.title_prompt_edit.placeholderText())
|
||||
self.assertEqual("封面提示词", tab.cover_prompt_edit.placeholderText())
|
||||
self.assertEqual("保存标题提示词", tab.save_title_button.text())
|
||||
self.assertEqual("保存模板", tab.save_title_template_button.text())
|
||||
self.assertEqual("插入旧标题", tab.insert_old_title_button.text())
|
||||
self.assertEqual("开始生成", tab.generate_button.text())
|
||||
self.assertEqual("停止", tab.stop_generate_button.text())
|
||||
@@ -1840,8 +1847,17 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertEqual(1, tab.title_progress_bar.maximum())
|
||||
self.assertEqual(1, tab.cover_progress_bar.maximum())
|
||||
self.assertIn("蝦皮台灣站", tab.title_prompt_edit.toPlainText())
|
||||
self.assertEqual("选择模板", tab.title_template_combo.currentText())
|
||||
self.assertIn("默认", [tab.title_template_combo.itemText(index) for index in range(tab.title_template_combo.count())])
|
||||
self.assertEqual("模板操作", tab.title_template_actions_button.text())
|
||||
self.assertIs(tab.title_template_actions_menu, tab.title_template_actions_button.menu())
|
||||
self.assertEqual(
|
||||
["另存为", "重命名", "删除"],
|
||||
[action.text() for action in tab.title_template_actions_menu.actions()],
|
||||
)
|
||||
self.assertEqual("papa1", tab.cover_template_combo.currentText())
|
||||
self.assertIn("商品标题:{新标题}", tab.cover_prompt_edit.toPlainText())
|
||||
self.assertEqual("保存模板", tab.save_cover_template_button.text())
|
||||
self.assertEqual("模板操作", tab.cover_template_actions_button.text())
|
||||
self.assertIs(tab.cover_template_actions_menu, tab.cover_template_actions_button.menu())
|
||||
self.assertEqual(
|
||||
@@ -2449,12 +2465,14 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
title_prompt_path = os.path.join(temp_dir, "title_prompt.txt")
|
||||
title_templates_dir = os.path.join(temp_dir, "prompts", "title")
|
||||
cover_prompts_dir = os.path.join(temp_dir, "prompts", "cover")
|
||||
|
||||
tab = GenerateTab(
|
||||
config=cfg,
|
||||
title_prompt_path=title_prompt_path,
|
||||
cover_prompts_dir=cover_prompts_dir,
|
||||
title_templates_dir=title_templates_dir,
|
||||
)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
@@ -2462,6 +2480,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertEqual("papa1", tab.cover_template_combo.currentText())
|
||||
self.assertIn("商品标题:{新标题}", tab.cover_prompt_edit.toPlainText())
|
||||
self.assertTrue(os.path.exists(title_prompt_path))
|
||||
self.assertTrue(os.path.exists(os.path.join(title_templates_dir, "默认.txt")))
|
||||
self.assertTrue(os.path.exists(os.path.join(cover_prompts_dir, "papa1.txt")))
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
@@ -2470,8 +2489,10 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
title_prompt_path = os.path.join(temp_dir, "title_prompt.txt")
|
||||
title_templates_dir = os.path.join(temp_dir, "prompts", "title")
|
||||
cover_prompts_dir = os.path.join(temp_dir, "prompts", "cover")
|
||||
prompts.save_title_prompt("标题启动回显", title_prompt_path)
|
||||
prompts.save_title_template("标题基础", "模板标题 {旧标题}", title_templates_dir)
|
||||
prompts.save_cover_template(
|
||||
"基础",
|
||||
"把{旧标题}变成{新标题},商品{商品id},店铺{店铺}",
|
||||
@@ -2502,10 +2523,13 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
status_callback=statuses.append,
|
||||
title_prompt_path=title_prompt_path,
|
||||
cover_prompts_dir=cover_prompts_dir,
|
||||
title_templates_dir=title_templates_dir,
|
||||
)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
self.assertEqual("标题启动回显", tab.title_prompt_edit.toPlainText())
|
||||
self.assertEqual("选择模板", tab.title_template_combo.currentText())
|
||||
self.assertIn("标题基础", prompts.list_title_templates(title_templates_dir))
|
||||
self.assertEqual("基础", tab.cover_template_combo.currentText())
|
||||
self.assertIn("{旧标题}", tab.cover_prompt_edit.toPlainText())
|
||||
|
||||
@@ -2518,6 +2542,30 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab.title_prompt_edit.setTextCursor(cursor)
|
||||
tab.insert_old_title_placeholder()
|
||||
self.assertEqual("A{旧标题}B", tab.title_prompt_edit.toPlainText())
|
||||
self.assertEqual("新标题提示词", prompts.load_title_prompt(title_prompt_path))
|
||||
|
||||
tab.title_template_combo.setCurrentIndex(tab.title_template_combo.findData("标题基础"))
|
||||
self.assertEqual("模板标题 {旧标题}", tab.title_prompt_edit.toPlainText())
|
||||
tab.title_prompt_edit.setPlainText("标题另存内容")
|
||||
with mock.patch("app.gui.QInputDialog.getText", return_value=("标题另存", True)):
|
||||
tab.save_title_template_as_action.trigger()
|
||||
self.assertEqual("标题另存", tab.title_template_combo.currentText())
|
||||
self.assertEqual(
|
||||
"标题另存内容",
|
||||
prompts.load_title_template("标题另存", title_templates_dir),
|
||||
)
|
||||
self.assertEqual("新标题提示词", prompts.load_title_prompt(title_prompt_path))
|
||||
|
||||
with mock.patch("app.gui.QInputDialog.getText", return_value=("标题改名", True)):
|
||||
tab.rename_title_template_action.trigger()
|
||||
self.assertEqual("标题改名", tab.title_template_combo.currentText())
|
||||
self.assertIn("标题改名", prompts.list_title_templates(title_templates_dir))
|
||||
tab.title_prompt_edit.setPlainText("标题模板保存")
|
||||
tab.save_title_template()
|
||||
self.assertEqual(
|
||||
"标题模板保存",
|
||||
prompts.load_title_template("标题改名", title_templates_dir),
|
||||
)
|
||||
|
||||
tab.cover_prompt_edit.setPlainText("另存模板 {新标题}")
|
||||
with mock.patch("app.gui.QInputDialog.getText", return_value=("另存", True)):
|
||||
@@ -2548,6 +2596,10 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab.delete_cover_template_action.trigger()
|
||||
self.assertNotIn("改名", prompts.list_cover_templates(cover_prompts_dir))
|
||||
|
||||
with mock.patch("app.gui.QMessageBox.question", return_value=gui.QMessageBox.Yes):
|
||||
tab.delete_title_template_action.trigger()
|
||||
self.assertNotIn("标题改名", prompts.list_title_templates(title_templates_dir))
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_cover_gallery_lists_candidates_and_selects_current_cover(self):
|
||||
@@ -3424,6 +3476,14 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
tab._set_generate_running(True)
|
||||
self.assertFalse(tab.reset_generate_button.isEnabled())
|
||||
self.assertFalse(tab.title_template_combo.isEnabled())
|
||||
self.assertFalse(tab.new_title_template_button.isEnabled())
|
||||
self.assertFalse(tab.save_title_template_button.isEnabled())
|
||||
self.assertFalse(tab.title_template_actions_button.isEnabled())
|
||||
self.assertFalse(tab.save_title_template_as_action.isEnabled())
|
||||
self.assertFalse(tab.rename_title_template_action.isEnabled())
|
||||
self.assertFalse(tab.delete_title_template_action.isEnabled())
|
||||
self.assertFalse(tab.cover_template_combo.isEnabled())
|
||||
tab.generate_thread = object()
|
||||
tab.reset_generated_result()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user