Files
cmshoppe/tests/test_product_suite.py
T

75 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import os
import sys
import unittest
from types import SimpleNamespace
sys.path.insert(0, os.path.dirname(__file__))
from app import product_suite
class ProductSuiteTests(unittest.TestCase):
def test_defaults_and_per_image_total(self):
settings = product_suite.default_suite_settings()
self.assertEqual(["白底图", "场景图", "卖点图"], product_suite.category_order(settings))
self.assertEqual(5, product_suite.suite_total_count(settings, 3))
settings["per_image_primary"] = True
self.assertEqual(13, product_suite.suite_total_count(settings, 3))
def test_custom_category_validation_and_normalization(self):
self.assertEqual("分类名称不能为空", product_suite.suite_name_error(""))
self.assertEqual("分类名称不能包含空格", product_suite.suite_name_error("使用 场景"))
self.assertEqual("分类名称不能超过10个字", product_suite.suite_name_error("一二三四五六七八九十甲"))
self.assertEqual("分类名称已存在", product_suite.suite_name_error("场景图", {"场景图"}))
settings = product_suite.normalize_suite_settings(
{
"ratio": "3:4",
"categories": {"白底图": 2, "场景图": 0, "卖点图": 1, "尺寸图": 2},
"custom_category_order": ["尺寸图"],
}
)
self.assertEqual("3:4", settings["ratio"])
self.assertEqual(["白底图", "场景图", "卖点图", "尺寸图"], product_suite.category_order(settings))
self.assertEqual(5, product_suite.suite_total_count(settings, 1))
def test_job_specs_include_selected_context_and_source_assignment(self):
settings = product_suite.default_suite_settings()
settings.update(
{
"platform": "Shopee",
"country": "中国台湾",
"language": "繁体中文",
"ratio": "4:3",
"per_image_primary": True,
"categories": {"白底图": 1, "场景图": 1, "卖点图": 0},
}
)
assets = [SimpleNamespace(id=11), SimpleNamespace(id=12)]
specs = product_suite.build_job_specs(
assets,
"40小时续航,适合通勤",
settings,
"51100639510",
)
self.assertEqual(3, len(specs))
self.assertEqual([11, 11, 12], [spec["source_asset_id"] for spec in specs])
self.assertEqual(["白底图", "场景图", "场景图"], [spec["job_type"] for spec in specs])
for spec in specs:
self.assertIn("平台:Shopee", spec["prompt"])
self.assertIn("国家地区:中国台湾", spec["prompt"])
self.assertIn("输出语言:繁体中文", spec["prompt"])
self.assertIn("图片比例:4:3", spec["prompt"])
self.assertIn("商品ID:51100639510", spec["prompt"])
self.assertIn("40小时续航", spec["prompt"])
if __name__ == "__main__":
unittest.main()