| |
| """Standalone smoke test for deterministic failure-mode classification.""" |
| import os |
| import sys |
|
|
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) |
|
|
| from reviewer.intelligence import _classify_failure_text, _failure_recommendation |
|
|
|
|
| def main() -> int: |
| assert _classify_failure_text("approval required before running this command") == "approval_or_permission_stall" |
| assert _classify_failure_text("Permission denied while opening file") == "approval_or_permission_stall" |
| assert _classify_failure_text("permission model docs mention safe defaults") is None |
| assert _classify_failure_text("request timed out after 30s") == "timeout" |
| assert _classify_failure_text("context deadline exceeded") == "timeout" |
| assert _classify_failure_text("model fallback activated") == "model_failover_or_fallback" |
| assert _classify_failure_text("no session found for id abc") == "stale_session_reference" |
| assert "heartbeat" in _failure_recommendation("timeout") |
| print("failure_classifier_smoke: ok") |
| return 0 |
|
|
|
|
| if __name__ == "__main__": |
| raise SystemExit(main()) |
|
|