|
|
@@ -0,0 +1,98 @@
|
|
|
+"""mineVehicles:车辆人员归属过滤与写校验。"""
|
|
|
+from __future__ import annotations
|
|
|
+
|
|
|
+from datetime import date, datetime
|
|
|
+from types import SimpleNamespace
|
|
|
+
|
|
|
+import pytest
|
|
|
+from sqlalchemy import create_engine
|
|
|
+from sqlalchemy.orm import sessionmaker
|
|
|
+
|
|
|
+from app.models.pl_models import (
|
|
|
+ PlPersonnel,
|
|
|
+ PlVehicle,
|
|
|
+ PlVehiclePersonnel,
|
|
|
+ PlVehicleRechargeApply,
|
|
|
+)
|
|
|
+
|
|
|
+
|
|
|
+def _make_session():
|
|
|
+ engine = create_engine("sqlite://")
|
|
|
+ for table in (
|
|
|
+ PlVehicle.__table__,
|
|
|
+ PlPersonnel.__table__,
|
|
|
+ PlVehiclePersonnel.__table__,
|
|
|
+ PlVehicleRechargeApply.__table__,
|
|
|
+ ):
|
|
|
+ table.create(engine)
|
|
|
+ return sessionmaker(bind=engine)()
|
|
|
+
|
|
|
+
|
|
|
+def _user(uid: str = "u-driver") -> SimpleNamespace:
|
|
|
+ return SimpleNamespace(id=uid, name="司机甲", dept_id="d1", role="driver", tenant_no="t1")
|
|
|
+
|
|
|
+
|
|
|
+def _seed_person_vehicle(db, *, user_id="u-driver", plate="鄂A11111", vehicle_id="veh-a"):
|
|
|
+ db.add(
|
|
|
+ PlVehicle(
|
|
|
+ id=vehicle_id,
|
|
|
+ vehicle_type="self",
|
|
|
+ license_plate=plate,
|
|
|
+ tenant_no="t1",
|
|
|
+ create_dept_id="d1",
|
|
|
+ del_flag=0,
|
|
|
+ )
|
|
|
+ )
|
|
|
+ db.add(
|
|
|
+ PlPersonnel(
|
|
|
+ id="p-1",
|
|
|
+ personnel_name="司机甲",
|
|
|
+ personnel_type="driver",
|
|
|
+ personnel_affiliation="self",
|
|
|
+ status="1",
|
|
|
+ sys_user_id=user_id,
|
|
|
+ tenant_no="t1",
|
|
|
+ create_dept_id="d1",
|
|
|
+ del_flag=0,
|
|
|
+ )
|
|
|
+ )
|
|
|
+ db.add(
|
|
|
+ PlVehiclePersonnel(
|
|
|
+ id="vp-1",
|
|
|
+ vehicle_id=vehicle_id,
|
|
|
+ personnel_id="p-1",
|
|
|
+ role="driver",
|
|
|
+ is_default=1,
|
|
|
+ tenant_no="t1",
|
|
|
+ create_dept_id="d1",
|
|
|
+ del_flag=0,
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def test_license_plates_for_user_personnel():
|
|
|
+ from app.services.pl_vehicle_mine_vehicles import license_plates_for_user_personnel
|
|
|
+
|
|
|
+ db = _make_session()
|
|
|
+ _seed_person_vehicle(db)
|
|
|
+ db.add(
|
|
|
+ PlVehicle(
|
|
|
+ id="veh-b",
|
|
|
+ vehicle_type="self",
|
|
|
+ license_plate="鄂A22222",
|
|
|
+ tenant_no="t1",
|
|
|
+ create_dept_id="d1",
|
|
|
+ del_flag=0,
|
|
|
+ )
|
|
|
+ )
|
|
|
+ db.commit()
|
|
|
+ plates = license_plates_for_user_personnel(db, "t1", "u-driver")
|
|
|
+ assert plates == {"鄂A11111"}
|
|
|
+
|
|
|
+
|
|
|
+def test_license_plates_empty_when_no_personnel():
|
|
|
+ from app.services.pl_vehicle_mine_vehicles import license_plates_for_user_personnel
|
|
|
+
|
|
|
+ db = _make_session()
|
|
|
+ db.commit()
|
|
|
+ assert license_plates_for_user_personnel(db, "t1", "u-nobody") == set()
|