- 新增数据库迁移脚本,为详情表添加四个价格相关字段 - 完善后端schema校验、序列化逻辑,增加价格相关的数据清理与验证规则 - 新增价格配置校验逻辑,设置起售价时必须选择对应的计价单位 - 在Admin UI详情编辑器中新增价格配置模块,支持配置起售价、计价单位、适用人数范围和价格说明 - 更新小程序端详情页面,支持展示配置的参考价格信息 - 补充相关测试用例,更新API文档与类型定义
29 lines
913 B
Python
29 lines
913 B
Python
from importlib.util import module_from_spec, spec_from_file_location
|
|
from pathlib import Path
|
|
|
|
|
|
MIGRATION_PATH = Path(__file__).parents[1] / "alembic" / "versions" / "0037_detail_price_config.py"
|
|
SPEC = spec_from_file_location("detail_price_config_migration", MIGRATION_PATH)
|
|
assert SPEC and SPEC.loader
|
|
MIGRATION = module_from_spec(SPEC)
|
|
SPEC.loader.exec_module(MIGRATION)
|
|
|
|
|
|
def test_price_columns_are_added_only_when_missing():
|
|
assert MIGRATION.missing_price_columns(set()) == {
|
|
"priceStartingValue",
|
|
"priceUnit",
|
|
"pricePeopleRange",
|
|
"priceDescription",
|
|
}
|
|
assert MIGRATION.missing_price_columns({"priceStartingValue", "priceUnit"}) == {
|
|
"pricePeopleRange",
|
|
"priceDescription",
|
|
}
|
|
assert MIGRATION.missing_price_columns({
|
|
"priceStartingValue",
|
|
"priceUnit",
|
|
"pricePeopleRange",
|
|
"priceDescription",
|
|
}) == set()
|