from __future__ import annotations from commitguard_env.parse_action import parse_action def test_parse_action_request_context() -> None: raw = """ request_context auth.c """ a = parse_action(raw) assert a.action_type == "request_context" assert a.file_path == "auth.c" assert a.parse_error is None def test_parse_action_analyze() -> None: raw = """ analyze hello """ a = parse_action(raw) assert a.action_type == "analyze" assert a.reasoning == "hello" assert a.parse_error is None def test_parse_action_verdict() -> None: raw = """ verdict true CWE-89 sql injection """ a = parse_action(raw) assert a.action_type == "verdict" assert a.is_vulnerable is True assert a.vuln_type == "CWE-89" assert a.exploit_sketch == "sql injection" assert a.parse_error is None def test_parse_action_malformed_never_throws_and_sets_error() -> None: raw = "???" a = parse_action(raw) assert a.action_type == "analyze" assert a.parse_error is not None