import unittest from fgai.policies import audit_policies, parse_policy_config, parse_policy_json class PolicyTests(unittest.TestCase): def test_policy_audit_finds_broad_unprotected_allow(self): policies = parse_policy_config( """ config firewall policy edit 1 set srcaddr "all" set dstaddr "all" set service "ALL" set action accept set logtraffic disable next end """ ) findings = audit_policies(policies) titles = {finding.title for finding in findings} self.assertIn("Broad allow policy", titles) self.assertIn("Accepted traffic lacks UTM inspection", titles) def test_policy_audit_reads_fortios_api_json_shape(self): policies = parse_policy_json( """ { "results": [ { "policyid": 7, "srcaddr": [{"name": "all"}], "dstaddr": [{"name": "all"}], "service": [{"name": "ALL"}], "action": "accept", "logtraffic": "disable" } ] } """ ) findings = audit_policies(policies) self.assertEqual(policies[0].policy_id, "7") self.assertIn("Broad allow policy", {finding.title for finding in findings}) if __name__ == "__main__": unittest.main()