Files
shanxia2.0/backend/tests/test_pl_transport_arrange_optional_driver.py
T
2026-08-06 09:58:20 +08:00

58 lines
1.6 KiB
Python

"""安排运输:司机可选。"""
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,
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