feat: cap cmhub image concurrency
This commit is contained in:
@@ -1936,6 +1936,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
cfg["ai"] = appconfig.ai_config(cfg)
|
||||
cfg["ai"]["backend"] = "direct"
|
||||
cfg["ai"]["generate_cover"] = True
|
||||
account = accounts.create_account("主店", "alias-a", debug_port=9222, config=cfg)
|
||||
batch_id = db.create_batch(["input.xlsx"], path=cfg["db_path"])
|
||||
@@ -1989,6 +1990,33 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"level": "warning",
|
||||
}
|
||||
)
|
||||
ai_cfg["on_event"](
|
||||
{
|
||||
"task": tasks[0],
|
||||
"phase": "cover",
|
||||
"step": "cover_request",
|
||||
"result": "success",
|
||||
"detail": "cmhub 已返回 image_url,耗时 91.2秒",
|
||||
}
|
||||
)
|
||||
ai_cfg["on_event"](
|
||||
{
|
||||
"task": tasks[0],
|
||||
"phase": "cover",
|
||||
"step": "cover_download",
|
||||
"result": "success",
|
||||
"detail": "下载完成,1.3MB,耗时 12.4秒",
|
||||
}
|
||||
)
|
||||
ai_cfg["on_event"](
|
||||
{
|
||||
"task": tasks[0],
|
||||
"phase": "cover",
|
||||
"step": "cover_save",
|
||||
"result": "success",
|
||||
"detail": "JPEG 已保存,耗时 1.1秒,文件 220.0KB",
|
||||
}
|
||||
)
|
||||
ai_cfg["on_task_update"](tasks[0].id, {"stage": "generated"})
|
||||
return {"ok": True, "total": 1, "title_done": 1, "cover_done": 1, "failed": 0}
|
||||
|
||||
@@ -2016,6 +2044,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertIn("[开始] 本轮生成 1 条", joined_logs)
|
||||
self.assertIn("[图片] 1/1 商品 51100639510", joined_logs)
|
||||
self.assertIn("准备重试 1/2", joined_logs)
|
||||
self.assertIn("cmhub 已返回 image_url,耗时 91.2秒", joined_logs)
|
||||
self.assertIn("下载完成,1.3MB,耗时 12.4秒", joined_logs)
|
||||
self.assertIn("本地保存完成,JPEG 已保存,耗时 1.1秒,文件 220.0KB", joined_logs)
|
||||
self.assertIn("token=***", joined_logs)
|
||||
self.assertNotIn("SECRET-TOKEN", joined_logs)
|
||||
self.assertIn("[完成] AI 生成完成:标题1/1,图片1/1,失败0", joined_logs)
|
||||
@@ -2023,6 +2054,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
event_messages = "\n".join(event.message for event in events)
|
||||
self.assertIn("[图片] 1/1 商品 51100639510", event_messages)
|
||||
self.assertIn("准备重试 1/2", event_messages)
|
||||
self.assertIn("下载完成,1.3MB,耗时 12.4秒", event_messages)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
@@ -2032,6 +2064,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
cfg["ai"] = appconfig.ai_config(cfg)
|
||||
cfg["ai"]["backend"] = "cmhub"
|
||||
cfg["ai"]["generate_cover"] = True
|
||||
cfg["ai"]["image_concurrency"] = 10
|
||||
accounts.create_account("主店", "alias-a", debug_port=9222, config=cfg)
|
||||
batch_id = db.create_batch(["input.xlsx"], path=cfg["db_path"])
|
||||
db.insert_tasks(
|
||||
@@ -2096,6 +2129,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertEqual(88, summary["points_balance"])
|
||||
self.assertEqual(88, progress[-1]["points_balance"])
|
||||
joined_logs = "\n".join(logs)
|
||||
self.assertIn("图片并发10", joined_logs)
|
||||
self.assertIn("cmhub实际生图并发5", joined_logs)
|
||||
self.assertIn("下载并发5", joined_logs)
|
||||
self.assertIn("[计费] 商品 51100639510", joined_logs)
|
||||
self.assertIn("别名 title-standard", joined_logs)
|
||||
self.assertIn("扣点 1", joined_logs)
|
||||
@@ -2193,6 +2229,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
cfg["ai"] = appconfig.ai_config(cfg)
|
||||
cfg["ai"]["backend"] = "direct"
|
||||
cfg["ai"]["generate_cover"] = True
|
||||
accounts.create_account("主店", "alias-a", debug_port=9222, config=cfg)
|
||||
batch_id = db.create_batch(["input.xlsx"], path=cfg["db_path"])
|
||||
@@ -2337,6 +2374,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
cfg["ai"] = appconfig.ai_config(cfg)
|
||||
cfg["ai"]["backend"] = "direct"
|
||||
cfg["ai"]["generate_cover"] = True
|
||||
accounts.create_account("主店", "alias-a", debug_port=9222, config=cfg)
|
||||
batch_id = db.create_batch(["input.xlsx"], path=cfg["db_path"])
|
||||
|
||||
Reference in New Issue
Block a user