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"} ]