Spaces:
Running
Running
| """Tests for risk gating logic.""" | |
| from pipeline.gate import compute_gate_decision | |
| def test_low_risk_auto_routes(): | |
| output = { | |
| "root_cause_l1": "billing", | |
| "root_cause_l2": "inquiry", | |
| "confidence": 0.9, | |
| "risk_level": "low", | |
| "churn_risk": 0.2, | |
| "review_required": False, | |
| "evidence_quotes": ["customer asked about bill"], | |
| } | |
| decision = compute_gate_decision(output) | |
| assert decision["route"] == "auto" | |
| assert decision["reasons"] == [] | |
| def test_low_confidence_triggers_review(): | |
| output = { | |
| "root_cause_l1": "billing", | |
| "confidence": 0.4, | |
| "risk_level": "low", | |
| "churn_risk": 0.2, | |
| "review_required": False, | |
| "evidence_quotes": ["quote"], | |
| } | |
| decision = compute_gate_decision(output) | |
| assert decision["route"] == "review" | |
| assert any("confidence" in r.lower() for r in decision["reasons"]) | |
| def test_high_churn_risk_triggers_review(): | |
| output = { | |
| "root_cause_l1": "billing", | |
| "confidence": 0.9, | |
| "risk_level": "medium", | |
| "churn_risk": 0.8, | |
| "review_required": False, | |
| "evidence_quotes": ["quote"], | |
| } | |
| decision = compute_gate_decision(output) | |
| assert decision["route"] == "review" | |
| def test_high_risk_category_triggers_review(): | |
| output = { | |
| "root_cause_l1": "security_breach", | |
| "confidence": 0.95, | |
| "risk_level": "low", | |
| "churn_risk": 0.3, | |
| "review_required": False, | |
| "evidence_quotes": ["quote"], | |
| } | |
| decision = compute_gate_decision(output) | |
| assert decision["route"] == "review" | |
| assert any("category" in r.lower() for r in decision["reasons"]) | |
| def test_missing_evidence_triggers_review(): | |
| output = { | |
| "root_cause_l1": "billing", | |
| "confidence": 0.9, | |
| "risk_level": "low", | |
| "churn_risk": 0.1, | |
| "review_required": False, | |
| "evidence_quotes": [], | |
| } | |
| decision = compute_gate_decision(output) | |
| assert decision["route"] == "review" | |
| assert any("evidence" in r.lower() for r in decision["reasons"]) | |
| def test_model_review_flag_triggers_review(): | |
| output = { | |
| "root_cause_l1": "billing", | |
| "confidence": 0.9, | |
| "risk_level": "low", | |
| "churn_risk": 0.1, | |
| "review_required": True, | |
| "evidence_quotes": ["quote"], | |
| } | |
| decision = compute_gate_decision(output) | |
| assert decision["route"] == "review" | |