feat(vwb): log supervised competence verdicts
This commit is contained in:
109
tests/unit/test_lea_competence_verdict_api.py
Normal file
109
tests/unit/test_lea_competence_verdict_api.py
Normal file
@@ -0,0 +1,109 @@
|
||||
from flask import Flask
|
||||
import importlib.util
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
MODULE_PATH = (
|
||||
Path(__file__).resolve().parents[2]
|
||||
/ "visual_workflow_builder"
|
||||
/ "backend"
|
||||
/ "api"
|
||||
/ "lea_competences.py"
|
||||
)
|
||||
SPEC = importlib.util.spec_from_file_location("lea_competences_test_module", MODULE_PATH)
|
||||
lea_competences_module = importlib.util.module_from_spec(SPEC)
|
||||
assert SPEC and SPEC.loader
|
||||
SPEC.loader.exec_module(lea_competences_module)
|
||||
lea_competences_bp = lea_competences_module.lea_competences_bp
|
||||
|
||||
|
||||
def _app():
|
||||
app = Flask(__name__)
|
||||
app.register_blueprint(lea_competences_bp)
|
||||
return app
|
||||
|
||||
|
||||
def test_submit_competence_verdict_endpoint(monkeypatch):
|
||||
def fake_store(competence_id, payload):
|
||||
assert competence_id == "key_win_r_wait_explorer_exe"
|
||||
assert payload["verdict_kind"] == "valid"
|
||||
return {
|
||||
"verdict_id": payload["verdict_id"],
|
||||
"competence_id": competence_id,
|
||||
"verdict_kind": "valid",
|
||||
"duplicate": False,
|
||||
"write_back_enabled": False,
|
||||
"yaml_write": False,
|
||||
}
|
||||
|
||||
monkeypatch.setattr(
|
||||
lea_competences_module,
|
||||
"store_competence_verdict",
|
||||
fake_store,
|
||||
)
|
||||
|
||||
with _app().test_client() as client:
|
||||
response = client.post(
|
||||
"/api/v1/lea/competences/key_win_r_wait_explorer_exe/verdict",
|
||||
json={
|
||||
"verdict_id": "123e4567-e89b-42d3-a456-426614174000",
|
||||
"verdict_kind": "valid",
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == 201
|
||||
data = response.get_json()
|
||||
assert data["success"] is True
|
||||
assert data["write_back_enabled"] is False
|
||||
assert data["yaml_write"] is False
|
||||
assert data["verdict"]["duplicate"] is False
|
||||
|
||||
|
||||
def test_submit_competence_verdict_endpoint_returns_duplicate_200(monkeypatch):
|
||||
def fake_store(_competence_id, payload):
|
||||
return {
|
||||
"verdict_id": payload["verdict_id"],
|
||||
"competence_id": "key_win_r_wait_explorer_exe",
|
||||
"verdict_kind": "valid",
|
||||
"duplicate": True,
|
||||
"write_back_enabled": False,
|
||||
"yaml_write": False,
|
||||
}
|
||||
|
||||
monkeypatch.setattr(
|
||||
lea_competences_module,
|
||||
"store_competence_verdict",
|
||||
fake_store,
|
||||
)
|
||||
|
||||
with _app().test_client() as client:
|
||||
response = client.post(
|
||||
"/api/v1/lea/competences/key_win_r_wait_explorer_exe/verdict",
|
||||
json={
|
||||
"verdict_id": "123e4567-e89b-42d3-a456-426614174000",
|
||||
"verdict_kind": "valid",
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.get_json()["duplicate"] is True
|
||||
|
||||
|
||||
def test_list_competence_verdicts_endpoint(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
lea_competences_module,
|
||||
"iter_competence_verdicts",
|
||||
lambda competence_id: [{"competence_id": competence_id, "verdict_kind": "valid"}],
|
||||
)
|
||||
|
||||
with _app().test_client() as client:
|
||||
response = client.get(
|
||||
"/api/v1/lea/competences/key_win_r_wait_explorer_exe/verdicts"
|
||||
)
|
||||
|
||||
data = response.get_json()
|
||||
assert response.status_code == 200
|
||||
assert data["success"] is True
|
||||
assert data["verdicts"] == [
|
||||
{"competence_id": "key_win_r_wait_explorer_exe", "verdict_kind": "valid"}
|
||||
]
|
||||
Reference in New Issue
Block a user