feat(product-suite): add cmhub vision AI writing

This commit is contained in:
chengma
2026-07-17 09:09:09 +08:00
parent 56d6b59a00
commit 40a9f5fbf2
15 changed files with 575 additions and 40 deletions
+29
View File
@@ -28,6 +28,7 @@ class AppConfigTests(TempDirMixin, unittest.TestCase):
self.assertEqual(os.path.join(temp_dir, "config", "cmhub.json"), config["cmhub_config_path"])
self.assertEqual(240, appconfig.response_timeout(config))
self.assertFalse(appconfig.ai_config(config)["generate_cover"])
self.assertEqual("vision-standard", appconfig.cmhub_config(config)["vision_alias"])
self.assertEqual("title", appconfig.ai_generate_mode(config))
self.assertEqual("title", appconfig.shopee_update_config(config)["update_mode"])
self.assertNotIn("allow_cover_update", appconfig.shopee_update_config(config))
@@ -153,6 +154,34 @@ class AppConfigTests(TempDirMixin, unittest.TestCase):
self.assert_removed(temp_dir)
def test_cmhub_vision_alias_defaults_for_legacy_config_and_preserves_saved_value(self):
with self.make_temp_dir() as temp_dir:
config_path = os.path.join(temp_dir, "config.json")
with open(config_path, "w", encoding="utf-8") as fh:
json.dump(
{
"ai": {
"backend": "cmhub",
"cmhub": {
"base_url": "https://cmhub.example.com",
"title_alias": "title-standard",
"image_alias": "image-hd",
},
}
},
fh,
ensure_ascii=False,
)
legacy = appconfig.load_config(config_path)
self.assertEqual("vision-standard", appconfig.cmhub_config(legacy)["vision_alias"])
legacy["ai"]["cmhub"]["vision_alias"] = "vision-custom"
saved = appconfig.save_config(legacy, path=config_path)
self.assertEqual("vision-custom", appconfig.cmhub_config(saved)["vision_alias"])
self.assert_removed(temp_dir)
def test_shopee_update_legacy_parallel_config_is_migrated(self):
with self.make_temp_dir() as temp_dir:
config_path = os.path.join(temp_dir, "config.json")