test_pl_io_order_enrichment.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from app.services.pl_io_order_service import (
  2. resolve_unit_label,
  3. PLAN_TYPE_BUSINESS_LABEL,
  4. merge_plan_logistics_into_order,
  5. merge_plan_product_into_item,
  6. )
  7. def test_resolve_unit_label_maps_dun():
  8. assert resolve_unit_label({"dun": "吨"}, "dun") == "吨"
  9. assert resolve_unit_label({}, "dun") == "dun"
  10. assert resolve_unit_label({}, None) == "吨"
  11. assert resolve_unit_label({}, "") == "吨"
  12. def test_merge_plan_logistics_into_order():
  13. data = {"remark": "order-remark"}
  14. plan = type(
  15. "P",
  16. (),
  17. {
  18. "plan_type": "outbound",
  19. "remark": "plan-remark",
  20. "pickup_address": "取货路1号",
  21. "pickup_lng": 117.0,
  22. "pickup_lat": 30.5,
  23. "pickup_time": None,
  24. "pickup_contact": "张三 13800000000",
  25. "pickup_notes": "戴帽",
  26. "destination_name": "仓库A",
  27. "destination_address": "送货路2号",
  28. "destination_lng": None,
  29. "destination_lat": None,
  30. "delivery_time": None,
  31. "delivery_contact": "李四 13900000000",
  32. "destination_notes": "北门",
  33. },
  34. )()
  35. merge_plan_logistics_into_order(data, plan)
  36. assert data["businessType"] == "出库"
  37. assert data["planRemark"] == "plan-remark"
  38. assert data["remark"] == "order-remark" # 单据备注不被覆盖
  39. assert data["pickupAddress"] == "取货路1号"
  40. assert data["pickupContact"] == "张三 13800000000"
  41. assert data["destinationAddress"] == "送货路2号"
  42. assert data["destinationName"] == "仓库A"
  43. assert data["deliveryContact"] == "李四 13900000000"
  44. def test_merge_plan_product_into_item():
  45. item = {"unit": "dun", "productName": "尿素"}
  46. product = type(
  47. "PP",
  48. (),
  49. {
  50. "product_no": "P001",
  51. "package_spec": "50kg/袋",
  52. "remark": "易潮",
  53. "unit": "dun",
  54. "model": "46.4%",
  55. "product_name": "工业级尿素",
  56. },
  57. )()
  58. merge_plan_product_into_item(item, product, unit_map={"dun": "吨"})
  59. assert item["productNo"] == "P001"
  60. assert item["packageSpec"] == "50kg/袋"
  61. assert item["remark"] == "易潮"
  62. assert item["unitLabel"] == "吨"
  63. assert item["unit"] == "dun"