test_pl_plan_resolve_driver.py 1013 B

1234567891011121314151617181920212223242526272829
  1. """运输计划解析司机:车辆未关联司机时允许为空。"""
  2. from __future__ import annotations
  3. from unittest.mock import MagicMock
  4. from app.services.pl_plan_service import _resolve_driver
  5. def test_resolve_driver_without_vehicle_link_returns_none():
  6. """未显式选司机、车辆也无关联司机时,应返回空三元组而非 400。"""
  7. db = MagicMock()
  8. db.query.return_value.filter.return_value.order_by.return_value.first.return_value = None
  9. result = _resolve_driver(db, "tenant-1", "vehicle-1", None)
  10. assert result == (None, None, None)
  11. def test_resolve_driver_with_explicit_id_returns_personnel():
  12. db = MagicMock()
  13. personnel = MagicMock()
  14. personnel.id = "driver-1"
  15. personnel.personnel_name = "张三"
  16. personnel.phone_no = "13800000000"
  17. db.query.return_value.filter.return_value.first.return_value = personnel
  18. result = _resolve_driver(db, "tenant-1", "vehicle-1", "driver-1")
  19. assert result == ("driver-1", "张三", "13800000000")