"""未结算计划:装货/送货客户名称去重与回退。""" 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"]