feat(ai-studio): refresh workspace layout
This commit is contained in:
+31
-3
@@ -512,8 +512,23 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"导入本地图片",
|
||||
" ".join(button.text() for button in tab.findChildren(gui.QPushButton)),
|
||||
)
|
||||
self.assertEqual("导出终选", tab.export_button.text())
|
||||
self.assertEqual("打开商品项目", tab.open_project_button.text())
|
||||
self.assertEqual("拉取蝦皮主图", tab.pull_images_button.text())
|
||||
self.assertEqual("导出到文件夹", tab.export_button.text())
|
||||
self.assertIn("可部分导出", tab.export_hint_label.text())
|
||||
self.assertIn("文件名按终选顺序连续", tab.export_hint_label.text())
|
||||
self.assertEqual("未打开商品项目", tab.current_project_label.text())
|
||||
self.assertIn("打开商品项目", tab.workspace_empty_label.text())
|
||||
self.assertEqual("生成 4 张主图", tab.start_button.text())
|
||||
tab.count_spin.setValue(3)
|
||||
tab.job_type_combo.setCurrentIndex(tab.job_type_combo.findData("detail"))
|
||||
self.assertEqual("生成 3 张详情图", tab.start_button.text())
|
||||
label_texts = "\n".join(label.text() for label in tab.findChildren(gui.QLabel))
|
||||
self.assertIn("商品项目", label_texts)
|
||||
self.assertIn("蝦皮原主图", label_texts)
|
||||
self.assertIn("照片池", label_texts)
|
||||
self.assertIn("生成设置", label_texts)
|
||||
self.assertIn("终选与排序", label_texts)
|
||||
self.assertEqual("完整提示词", prompts.load_image_studio_template("工场模板", prompts_dir))
|
||||
template_index = tab.template_combo.findData("工场模板")
|
||||
self.assertGreaterEqual(template_index, 0)
|
||||
@@ -526,6 +541,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertIsNotNone(tab.current_project)
|
||||
self.assertEqual("alias-a", tab.current_project.account_alias)
|
||||
self.assertEqual("51100639510", tab.current_project.item_id)
|
||||
self.assertIn("alias-a", tab.current_project_label.text())
|
||||
self.assertIn("51100639510", tab.current_project_label.text())
|
||||
self.assertEqual("项目已自动保存", tab.autosave_label.text())
|
||||
self.assertEqual(1, tab.project_table.rowCount())
|
||||
|
||||
original = image_studio.sync_original_asset_urls(
|
||||
@@ -536,10 +554,12 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab.refresh_project_assets()
|
||||
|
||||
self.assertEqual(1, tab.original_table.rowCount())
|
||||
self.assertEqual("1", tab.original_table.item(0, 0).text())
|
||||
self.assertEqual("主图 #1", tab.original_table.item(0, 0).text())
|
||||
self.assertFalse(tab.original_table.item(0, 0).icon().isNull())
|
||||
self.assertEqual("远程待下载", tab.original_table.item(0, 1).text())
|
||||
self.assertEqual(1, tab.pool_table.rowCount())
|
||||
self.assertEqual("原图", tab.pool_table.item(0, 0).text())
|
||||
self.assertEqual(f"原图 #{original.id}", tab.pool_table.item(0, 0).text())
|
||||
self.assertFalse(tab.pool_table.item(0, 0).icon().isNull())
|
||||
self.assertEqual("远程待下载", tab.pool_table.item(0, 2).text())
|
||||
self.assertEqual(original.id, tab.pool_table.item(0, 0).data(gui.Qt.UserRole)["asset_id"])
|
||||
|
||||
@@ -584,7 +604,10 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertEqual([second.id, first.id], [
|
||||
tab.main_selection_list.item(row).data(gui.Qt.UserRole)
|
||||
for row in range(tab.main_selection_list.count())
|
||||
if tab.main_selection_list.item(row).data(gui.Qt.UserRole) is not None
|
||||
])
|
||||
self.assertEqual(9, tab.main_selection_list.count())
|
||||
self.assertIn("空位", tab.main_selection_list.item(2).text())
|
||||
self.assertEqual("#fff8c5", tab.main_selection_list.item(0).background().color().name())
|
||||
|
||||
self.assertFalse(tab.add_asset_to_selection("main", first.id))
|
||||
@@ -592,6 +615,8 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertTrue(tab.add_asset_to_selection("detail", first.id))
|
||||
detail = image_studio.list_selections(project.id, "detail", path=cfg["db_path"])
|
||||
self.assertEqual([first.id], [selection.asset_id for selection in detail])
|
||||
self.assertEqual(12, tab.detail_selection_list.count())
|
||||
self.assertIn("空位", tab.detail_selection_list.item(1).text())
|
||||
|
||||
self.assertTrue(tab.move_selection_asset("main", 1, 0))
|
||||
main = image_studio.list_selections(project.id, "main", path=cfg["db_path"])
|
||||
@@ -674,6 +699,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab._select_project(project.id)
|
||||
tab._select_source_asset(source)
|
||||
tab.prompt_edit.setPlainText("生成商品主图")
|
||||
self.assertIn(f"原图 #{source.id}", tab.source_label.text())
|
||||
self.assertEqual("", tab.source_preview_label.text())
|
||||
self.assertFalse(tab.source_preview_label.pixmap().isNull())
|
||||
|
||||
class FakeStudioWorker:
|
||||
def __init__(self):
|
||||
|
||||
Reference in New Issue
Block a user