Files
shanxia2.0/backend/tests/test_pl_io_order_enrichment.py
T
2026-08-06 09:58:20 +08:00

70 lines
2.3 KiB
Python

from app.services.pl_io_order_service import (
resolve_unit_label,
PLAN_TYPE_BUSINESS_LABEL,
merge_plan_logistics_into_order,
merge_plan_product_into_item,
)
def test_resolve_unit_label_maps_dun():
assert resolve_unit_label({"dun": "吨"}, "dun") == "吨"
assert resolve_unit_label({}, "dun") == "dun"
assert resolve_unit_label({}, None) == "吨"
assert resolve_unit_label({}, "") == "吨"
def test_merge_plan_logistics_into_order():
data = {"remark": "order-remark"}
plan = type(
"P",
(),
{
"plan_type": "outbound",
"remark": "plan-remark",
"pickup_address": "取货路1号",
"pickup_lng": 117.0,
"pickup_lat": 30.5,
"pickup_time": None,
"pickup_contact": "张三 13800000000",
"pickup_notes": "戴帽",
"destination_name": "仓库A",
"destination_address": "送货路2号",
"destination_lng": None,
"destination_lat": None,
"delivery_time": None,
"delivery_contact": "李四 13900000000",
"destination_notes": "北门",
},
)()
merge_plan_logistics_into_order(data, plan)
assert data["businessType"] == "出库"
assert data["planRemark"] == "plan-remark"
assert data["remark"] == "order-remark" # 单据备注不被覆盖
assert data["pickupAddress"] == "取货路1号"
assert data["pickupContact"] == "张三 13800000000"
assert data["destinationAddress"] == "送货路2号"
assert data["destinationName"] == "仓库A"
assert data["deliveryContact"] == "李四 13900000000"
def test_merge_plan_product_into_item():
item = {"unit": "dun", "productName": "尿素"}
product = type(
"PP",
(),
{
"product_no": "P001",
"package_spec": "50kg/袋",
"remark": "易潮",
"unit": "dun",
"model": "46.4%",
"product_name": "工业级尿素",
},
)()
merge_plan_product_into_item(item, product, unit_map={"dun": "吨"})
assert item["productNo"] == "P001"
assert item["packageSpec"] == "50kg/袋"
assert item["remark"] == "易潮"
assert item["unitLabel"] == "吨"
assert item["unit"] == "dun"