diff --git a/sigma/validation.py b/sigma/validation.py index 65c73e15..7ec7f825 100644 --- a/sigma/validation.py +++ b/sigma/validation.py @@ -1,5 +1,5 @@ from collections import defaultdict -from typing import DefaultDict, Dict, Iterable, List, Set, Type +from typing import DefaultDict, Dict, Iterable, Iterator, List, Set, Type from uuid import UUID from sigma.collection import SigmaCollection from sigma.exceptions import SigmaConfigurationError @@ -120,9 +120,9 @@ def finalize(self) -> List[SigmaValidationIssue]: for issue in validator.finalize() ] - def validate_rule_collection(self, rule_collection : SigmaCollection) -> List[SigmaValidationIssue]: + def validate_rules(self, rules : Iterator[SigmaRule]) -> List[SigmaValidationIssue]: """ - Validate a Sigma rule collection. This method runs all validators on all rules and finalizes + Validate Sigma rules. This method runs all validators on all rules and finalizes the validators at the end. :param rule_collection: Rule collection that should be validated. @@ -132,6 +132,6 @@ def validate_rule_collection(self, rule_collection : SigmaCollection) -> List[Si """ return [ issue - for rule in rule_collection + for rule in rules for issue in self.validate_rule(rule) ] + self.finalize() \ No newline at end of file diff --git a/tests/test_validation.py b/tests/test_validation.py index 30c413a1..6d309f4b 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -9,10 +9,10 @@ from sigma.collection import SigmaCollection from sigma.validators.metadata import IdentifierExistenceValidator, IdentifierUniquenessValidator, IdentifierExistenceIssue, IdentifierCollisionIssue -def test_sigmavalidator_validate_rule_collection(rule_with_id, rule_without_id, rules_with_id_collision): +def test_sigmavalidator_validate_rules(rule_with_id, rule_without_id, rules_with_id_collision): rules = SigmaCollection([rule_with_id, rule_without_id, *rules_with_id_collision]) validator = SigmaValidator({ IdentifierExistenceValidator, IdentifierUniquenessValidator }) - issues = validator.validate_rule_collection(rules) + issues = validator.validate_rules(rules) assert issues == [ IdentifierExistenceIssue([rule_without_id]), IdentifierCollisionIssue(rules_with_id_collision, UUID("32532a0b-e56c-47c9-bcbb-3d88bd670c37")), @@ -24,7 +24,7 @@ def test_sigmavalidator_exclusions(rule_with_id, rule_without_id, rules_with_id_ UUID("32532a0b-e56c-47c9-bcbb-3d88bd670c37"): { IdentifierUniquenessValidator }, } validator = SigmaValidator({ IdentifierExistenceValidator, IdentifierUniquenessValidator }, exclusions) - issues = validator.validate_rule_collection(rules) + issues = validator.validate_rules(rules) assert issues == [ IdentifierExistenceIssue([rule_without_id]), ]