"""运输计划解析司机:车辆未关联司机时允许为空。""" from __future__ import annotations from unittest.mock import MagicMock from app.services.pl_plan_service import _resolve_driver def test_resolve_driver_without_vehicle_link_returns_none(): """未显式选司机、车辆也无关联司机时,应返回空三元组而非 400。""" db = MagicMock() db.query.return_value.filter.return_value.order_by.return_value.first.return_value = None result = _resolve_driver(db, "tenant-1", "vehicle-1", None) assert result == (None, None, None) def test_resolve_driver_with_explicit_id_returns_personnel(): db = MagicMock() personnel = MagicMock() personnel.id = "driver-1" personnel.personnel_name = "张三" personnel.phone_no = "13800000000" db.query.return_value.filter.return_value.first.return_value = personnel result = _resolve_driver(db, "tenant-1", "vehicle-1", "driver-1") assert result == ("driver-1", "张三", "13800000000")