|
|
@@ -0,0 +1,67 @@
|
|
|
+"""三方不强制证书;山峡仍强制。"""
|
|
|
+from __future__ import annotations
|
|
|
+
|
|
|
+import pytest
|
|
|
+from fastapi import HTTPException
|
|
|
+
|
|
|
+from app.services.pl_cert_required_service import (
|
|
|
+ validate_personnel_required_certs,
|
|
|
+ validate_vehicle_save_certs,
|
|
|
+)
|
|
|
+
|
|
|
+
|
|
|
+def test_carrier_personnel_skips_required_certs():
|
|
|
+ validate_personnel_required_certs(
|
|
|
+ [],
|
|
|
+ "driver",
|
|
|
+ personnel_affiliation="carrier",
|
|
|
+ subject_label="「张三」",
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def test_self_personnel_still_requires_certs():
|
|
|
+ with pytest.raises(HTTPException) as ei:
|
|
|
+ validate_personnel_required_certs(
|
|
|
+ [],
|
|
|
+ "driver",
|
|
|
+ personnel_affiliation="self",
|
|
|
+ subject_label="「李四」",
|
|
|
+ )
|
|
|
+ assert ei.value.status_code == 400
|
|
|
+ assert "必备证书" in ei.value.detail
|
|
|
+
|
|
|
+
|
|
|
+def test_validate_vehicle_save_certs_carrier_skips_vehicle_and_personnel_certs(monkeypatch):
|
|
|
+ """carrier 车:不跑车辆必备、不跑关联人员证书;仍可跑归属。"""
|
|
|
+ called = {"self": 0, "carrier": 0, "links": 0}
|
|
|
+
|
|
|
+ import app.services.pl_cert_required_service as svc
|
|
|
+
|
|
|
+ monkeypatch.setattr(
|
|
|
+ svc,
|
|
|
+ "validate_self_vehicle_required_certs",
|
|
|
+ lambda *a, **k: called.__setitem__("self", called["self"] + 1),
|
|
|
+ )
|
|
|
+ monkeypatch.setattr(
|
|
|
+ svc,
|
|
|
+ "validate_carrier_vehicle_required_certs",
|
|
|
+ lambda *a, **k: called.__setitem__("carrier", called["carrier"] + 1),
|
|
|
+ )
|
|
|
+ monkeypatch.setattr(
|
|
|
+ svc,
|
|
|
+ "validate_vehicle_personnel_cert_links",
|
|
|
+ lambda *a, **k: called.__setitem__("links", called["links"] + 1),
|
|
|
+ )
|
|
|
+ monkeypatch.setattr(svc, "validate_vehicle_personnel_affiliation", lambda *a, **k: None)
|
|
|
+
|
|
|
+ validate_vehicle_save_certs(
|
|
|
+ db=None,
|
|
|
+ tenant_no="t1",
|
|
|
+ vehicle_type="carrier",
|
|
|
+ trailer_no="皖LP359",
|
|
|
+ cert_rows=[],
|
|
|
+ personnel_rows=[],
|
|
|
+ )
|
|
|
+ assert called["carrier"] == 0
|
|
|
+ assert called["self"] == 0
|
|
|
+ assert called["links"] == 0
|