30 lines
1013 B
Python
30 lines
1013 B
Python
"""运输计划解析司机:车辆未关联司机时允许为空。"""
|
|
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")
|