48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
"""未结算计划:装货/送货客户名称去重与回退。"""
|
|
from __future__ import annotations
|
|
|
|
from app.services.pl.freight_party_customers import (
|
|
resolve_plan_party_customers,
|
|
unique_customer_names,
|
|
)
|
|
|
|
|
|
def test_unique_customer_names_strips_dedupes_preserves_order():
|
|
assert unique_customer_names([" 甲 ", "乙", "甲", "", None, "丙"]) == ["甲", "乙", "丙"]
|
|
|
|
|
|
def test_resolve_uses_stop_names_over_legacy():
|
|
load, delivery = resolve_plan_party_customers(
|
|
load_names=["装货A"],
|
|
delivery_names=["送货1", "送货2"],
|
|
fallback_supplier="旧供应商",
|
|
fallback_customer="旧客户",
|
|
fallback_destination="旧目的地",
|
|
)
|
|
assert load == ["装货A"]
|
|
assert delivery == ["送货1", "送货2"]
|
|
|
|
|
|
def test_resolve_falls_back_when_stops_empty():
|
|
load, delivery = resolve_plan_party_customers(
|
|
load_names=[],
|
|
delivery_names=["", " "],
|
|
fallback_supplier="供应商X",
|
|
fallback_customer="客户Y",
|
|
fallback_destination="目的地Z",
|
|
)
|
|
assert load == ["供应商X"]
|
|
assert delivery == ["客户Y"]
|
|
|
|
|
|
def test_resolve_delivery_falls_back_to_destination():
|
|
load, delivery = resolve_plan_party_customers(
|
|
load_names=[],
|
|
delivery_names=[],
|
|
fallback_supplier=None,
|
|
fallback_customer=None,
|
|
fallback_destination="目的地Z",
|
|
)
|
|
assert load == []
|
|
assert delivery == ["目的地Z"]
|