"""安排运输:司机可选。""" from __future__ import annotations from types import SimpleNamespace from app.api.pl.transport import _apply_transport_arrange_fields from app.schemas.pl.transport import TransportArrange def test_transport_arrange_schema_allows_missing_driver(): payload = TransportArrange.model_validate({"vehicleId": "veh-1"}) assert payload.vehicle_id == "veh-1" assert payload.driver_id is None def test_apply_transport_arrange_fields_without_driver(): transport = SimpleNamespace( vehicle_id=None, license_plate=None, driver_id="old", driver_name="旧司机", driver_phone="1", carrier_id=None, carrier_name=None, transport_medium=None, start_point=None, end_point=None, distance_km=None, unit=None, freight_price=None, freight_amount=0, freight_type="by_weight", has_invoice=0, remark=None, update_by=None, ) payload = TransportArrange.model_validate( {"vehicleId": "veh-1", "freightType": "by_weight"} ) _apply_transport_arrange_fields( transport, payload=payload, vehicle_info={"license_plate": "粤A12345", "carrier_id": None}, driver_info=None, escort_info=None, carrier_name=None, start_point="A", end_point="B", freight_amount=0, user_id="u1", ) assert transport.vehicle_id == "veh-1" assert transport.license_plate == "粤A12345" assert transport.driver_id is None assert transport.driver_name is None assert transport.driver_phone is None