test_pl_freight_party_customers.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """未结算计划:装货/送货客户名称去重与回退。"""
  2. from __future__ import annotations
  3. from app.services.pl.freight_party_customers import (
  4. resolve_plan_party_customers,
  5. unique_customer_names,
  6. )
  7. def test_unique_customer_names_strips_dedupes_preserves_order():
  8. assert unique_customer_names([" 甲 ", "乙", "甲", "", None, "丙"]) == ["甲", "乙", "丙"]
  9. def test_resolve_uses_stop_names_over_legacy():
  10. load, delivery = resolve_plan_party_customers(
  11. load_names=["装货A"],
  12. delivery_names=["送货1", "送货2"],
  13. fallback_supplier="旧供应商",
  14. fallback_customer="旧客户",
  15. fallback_destination="旧目的地",
  16. )
  17. assert load == ["装货A"]
  18. assert delivery == ["送货1", "送货2"]
  19. def test_resolve_falls_back_when_stops_empty():
  20. load, delivery = resolve_plan_party_customers(
  21. load_names=[],
  22. delivery_names=["", " "],
  23. fallback_supplier="供应商X",
  24. fallback_customer="客户Y",
  25. fallback_destination="目的地Z",
  26. )
  27. assert load == ["供应商X"]
  28. assert delivery == ["客户Y"]
  29. def test_resolve_delivery_falls_back_to_destination():
  30. load, delivery = resolve_plan_party_customers(
  31. load_names=[],
  32. delivery_names=[],
  33. fallback_supplier=None,
  34. fallback_customer=None,
  35. fallback_destination="目的地Z",
  36. )
  37. assert load == []
  38. assert delivery == ["目的地Z"]