| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- """三方不强制证书;山峡仍强制。"""
- 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
|