From 157bb9fc71a6589be3151b399acd0956366056db Mon Sep 17 00:00:00 2001 From: geetanjalimanegslab <96573243+geetanjalimanegslab@users.noreply.github.com> Date: Thu, 6 Feb 2025 22:18:39 +0530 Subject: [PATCH] refactor(anta.tests): Nicer result failure messages for AAA test module (#1031) Co-authored-by: Carl Baillargeon --- anta/tests/aaa.py | 18 +++++++++--------- tests/units/anta_tests/test_aaa.py | 26 +++++++++++++------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/anta/tests/aaa.py b/anta/tests/aaa.py index 22f751891..1dd228ea5 100644 --- a/anta/tests/aaa.py +++ b/anta/tests/aaa.py @@ -108,7 +108,7 @@ def test(self) -> None: if not not_configured: self.result.is_success() else: - self.result.is_failure(f"TACACS servers {not_configured} are not configured in VRF {self.inputs.vrf}") + self.result.is_failure(f"TACACS servers {', '.join(not_configured)} are not configured in VRF {self.inputs.vrf}") class VerifyTacacsServerGroups(AntaTest): @@ -151,7 +151,7 @@ def test(self) -> None: if not not_configured: self.result.is_success() else: - self.result.is_failure(f"TACACS server group(s) {not_configured} are not configured") + self.result.is_failure(f"TACACS server group(s) {', '.join(not_configured)} are not configured") class VerifyAuthenMethods(AntaTest): @@ -204,14 +204,14 @@ def test(self) -> None: self.result.is_failure("AAA authentication methods are not configured for login console") return if v["login"]["methods"] != self.inputs.methods: - self.result.is_failure(f"AAA authentication methods {self.inputs.methods} are not matching for login console") + self.result.is_failure(f"AAA authentication methods {', '.join(self.inputs.methods)} are not matching for login console") return not_matching.extend(auth_type for methods in v.values() if methods["methods"] != self.inputs.methods) if not not_matching: self.result.is_success() else: - self.result.is_failure(f"AAA authentication methods {self.inputs.methods} are not matching for {not_matching}") + self.result.is_failure(f"AAA authentication methods {', '.join(self.inputs.methods)} are not matching for {', '.join(not_matching)}") class VerifyAuthzMethods(AntaTest): @@ -263,7 +263,7 @@ def test(self) -> None: if not not_matching: self.result.is_success() else: - self.result.is_failure(f"AAA authorization methods {self.inputs.methods} are not matching for {not_matching}") + self.result.is_failure(f"AAA authorization methods {', '.join(self.inputs.methods)} are not matching for {', '.join(not_matching)}") class VerifyAcctDefaultMethods(AntaTest): @@ -319,12 +319,12 @@ def test(self) -> None: if methods["defaultMethods"] != self.inputs.methods: not_matching.append(acct_type) if not_configured: - self.result.is_failure(f"AAA default accounting is not configured for {not_configured}") + self.result.is_failure(f"AAA default accounting is not configured for {', '.join(not_configured)}") return if not not_matching: self.result.is_success() else: - self.result.is_failure(f"AAA accounting default methods {self.inputs.methods} are not matching for {not_matching}") + self.result.is_failure(f"AAA accounting default methods {', '.join(self.inputs.methods)} are not matching for {', '.join(not_matching)}") class VerifyAcctConsoleMethods(AntaTest): @@ -380,9 +380,9 @@ def test(self) -> None: if methods["consoleMethods"] != self.inputs.methods: not_matching.append(acct_type) if not_configured: - self.result.is_failure(f"AAA console accounting is not configured for {not_configured}") + self.result.is_failure(f"AAA console accounting is not configured for {', '.join(not_configured)}") return if not not_matching: self.result.is_success() else: - self.result.is_failure(f"AAA accounting console methods {self.inputs.methods} are not matching for {not_matching}") + self.result.is_failure(f"AAA accounting console methods {', '.join(self.inputs.methods)} are not matching for {', '.join(not_matching)}") diff --git a/tests/units/anta_tests/test_aaa.py b/tests/units/anta_tests/test_aaa.py index 8589b5955..e88c4e028 100644 --- a/tests/units/anta_tests/test_aaa.py +++ b/tests/units/anta_tests/test_aaa.py @@ -128,7 +128,7 @@ }, ], "inputs": {"servers": ["10.22.10.91", "10.22.10.92"], "vrf": "MGMT"}, - "expected": {"result": "failure", "messages": ["TACACS servers ['10.22.10.92'] are not configured in VRF MGMT"]}, + "expected": {"result": "failure", "messages": ["TACACS servers 10.22.10.92 are not configured in VRF MGMT"]}, }, { "name": "failure-wrong-vrf", @@ -145,7 +145,7 @@ }, ], "inputs": {"servers": ["10.22.10.91"], "vrf": "MGMT"}, - "expected": {"result": "failure", "messages": ["TACACS servers ['10.22.10.91'] are not configured in VRF MGMT"]}, + "expected": {"result": "failure", "messages": ["TACACS servers 10.22.10.91 are not configured in VRF MGMT"]}, }, { "name": "success", @@ -192,7 +192,7 @@ }, ], "inputs": {"groups": ["GROUP1"]}, - "expected": {"result": "failure", "messages": ["TACACS server group(s) ['GROUP1'] are not configured"]}, + "expected": {"result": "failure", "messages": ["TACACS server group(s) GROUP1 are not configured"]}, }, { "name": "success-login-enable", @@ -244,7 +244,7 @@ }, ], "inputs": {"methods": ["tacacs+", "local"], "types": ["login", "enable"]}, - "expected": {"result": "failure", "messages": ["AAA authentication methods ['group tacacs+', 'local'] are not matching for login console"]}, + "expected": {"result": "failure", "messages": ["AAA authentication methods group tacacs+, local are not matching for login console"]}, }, { "name": "failure-login-default", @@ -257,7 +257,7 @@ }, ], "inputs": {"methods": ["tacacs+", "local"], "types": ["login", "enable"]}, - "expected": {"result": "failure", "messages": ["AAA authentication methods ['group tacacs+', 'local'] are not matching for ['login']"]}, + "expected": {"result": "failure", "messages": ["AAA authentication methods group tacacs+, local are not matching for login"]}, }, { "name": "success", @@ -293,7 +293,7 @@ }, ], "inputs": {"methods": ["tacacs+", "local"], "types": ["commands", "exec"]}, - "expected": {"result": "failure", "messages": ["AAA authorization methods ['group tacacs+', 'local'] are not matching for ['commands']"]}, + "expected": {"result": "failure", "messages": ["AAA authorization methods group tacacs+, local are not matching for commands"]}, }, { "name": "failure-exec", @@ -305,7 +305,7 @@ }, ], "inputs": {"methods": ["tacacs+", "local"], "types": ["commands", "exec"]}, - "expected": {"result": "failure", "messages": ["AAA authorization methods ['group tacacs+', 'local'] are not matching for ['exec']"]}, + "expected": {"result": "failure", "messages": ["AAA authorization methods group tacacs+, local are not matching for exec"]}, }, { "name": "success-commands-exec-system", @@ -347,7 +347,7 @@ }, ], "inputs": {"methods": ["tacacs+", "logging"], "types": ["commands", "exec", "system"]}, - "expected": {"result": "failure", "messages": ["AAA default accounting is not configured for ['commands']"]}, + "expected": {"result": "failure", "messages": ["AAA default accounting is not configured for commands"]}, }, { "name": "failure-not-configured-empty", @@ -361,7 +361,7 @@ }, ], "inputs": {"methods": ["tacacs+", "logging"], "types": ["commands", "exec", "system"]}, - "expected": {"result": "failure", "messages": ["AAA default accounting is not configured for ['system', 'exec', 'commands']"]}, + "expected": {"result": "failure", "messages": ["AAA default accounting is not configured for system, exec, commands"]}, }, { "name": "failure-not-matching", @@ -375,7 +375,7 @@ }, ], "inputs": {"methods": ["tacacs+", "logging"], "types": ["commands", "exec", "system"]}, - "expected": {"result": "failure", "messages": ["AAA accounting default methods ['group tacacs+', 'logging'] are not matching for ['commands']"]}, + "expected": {"result": "failure", "messages": ["AAA accounting default methods group tacacs+, logging are not matching for commands"]}, }, { "name": "success-commands-exec-system", @@ -476,7 +476,7 @@ }, ], "inputs": {"methods": ["tacacs+", "logging"], "types": ["commands", "exec", "system"]}, - "expected": {"result": "failure", "messages": ["AAA console accounting is not configured for ['commands']"]}, + "expected": {"result": "failure", "messages": ["AAA console accounting is not configured for commands"]}, }, { "name": "failure-not-configured-empty", @@ -490,7 +490,7 @@ }, ], "inputs": {"methods": ["tacacs+", "logging"], "types": ["commands", "exec", "system"]}, - "expected": {"result": "failure", "messages": ["AAA console accounting is not configured for ['system', 'exec', 'commands']"]}, + "expected": {"result": "failure", "messages": ["AAA console accounting is not configured for system, exec, commands"]}, }, { "name": "failure-not-matching", @@ -522,6 +522,6 @@ }, ], "inputs": {"methods": ["tacacs+", "logging"], "types": ["commands", "exec", "system"]}, - "expected": {"result": "failure", "messages": ["AAA accounting console methods ['group tacacs+', 'logging'] are not matching for ['commands']"]}, + "expected": {"result": "failure", "messages": ["AAA accounting console methods group tacacs+, logging are not matching for commands"]}, }, ]