fix: test_pricing 传入已解析的 dict 导致 yaml.safe_load 报错

ppt_db2app 将 pricing_data 从 YAML 字符串解析为 Python dict,
但 test_pricing 直接传给 get_pricing_from_ymalstr(期望 YAML 字符串),
导致 yaml.safe_load(dict) 报 TypeError。

修复:检测 ppt.pricing_data 类型,如果是 dict 则 yaml.dump 转回字符串。
This commit is contained in:
yumoqing 2026-06-12 15:12:44 +08:00
parent 7df8e530a4
commit c875a8dc2b

View File

@ -974,7 +974,9 @@ async def get_pricing_program_timeing(pptid):
async def test_pricing(pptid, data):
ppt = await get_pricing_program_timeing(pptid)
prices = PricingProgram.get_pricing_from_ymalstr(data, ppt.pricing_data)
# ppt.pricing_data 已被 ppt_db2app 解析为 dict需要转回 YAML 字符串
yamlstr = yaml.dump(ppt.pricing_data, allow_unicode=True) if isinstance(ppt.pricing_data, dict) else ppt.pricing_data
prices = PricingProgram.get_pricing_from_ymalstr(data, yamlstr)
if prices is None:
return None
amount = 0