From 9eaf6c01977567f1d3540fff8758ff5b87278f4a Mon Sep 17 00:00:00 2001 From: Atte Niemi <4998544+hur@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:59:07 +0000 Subject: [PATCH] Fix failing CustomIOA unit test --- caracara/modules/custom_ioa/custom_ioa.py | 1 - caracara/modules/custom_ioa/rules.py | 5 ++++- tests/unit_tests/test_custom_ioas.py | 9 ++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/caracara/modules/custom_ioa/custom_ioa.py b/caracara/modules/custom_ioa/custom_ioa.py index d8cc8ae..19e12a7 100644 --- a/caracara/modules/custom_ioa/custom_ioa.py +++ b/caracara/modules/custom_ioa/custom_ioa.py @@ -204,7 +204,6 @@ def _update_create_delete_rules(self, group: IoaRuleGroup, comment: str) -> IoaR raw_rule, rule_type=self._get_rule_types_cached()[raw_rule["ruletype_id"]], ) - new_rule.rulegroup_id = group.id_ new_rules.append(new_rule) new_group.version += 1 diff --git a/caracara/modules/custom_ioa/rules.py b/caracara/modules/custom_ioa/rules.py index e552fad..54ef912 100644 --- a/caracara/modules/custom_ioa/rules.py +++ b/caracara/modules/custom_ioa/rules.py @@ -122,7 +122,6 @@ def from_data_dict(data_dict: dict, rule_type_map: Dict[str, RuleType]) -> IoaRu # The following line might raise an index error if there's a rule type on this rule that # we don't know about. I don't catch this since I don't think it's likely to happen. rule_type = rule_type_map[raw_rule["ruletype_id"]] - raw_rule["rulegroup_id"] = rule_group.id_ # API doesn't populate this field, so we do rule = CustomIoaRule.from_data_dict(data_dict=raw_rule, rule_type=rule_type) rule_group.rules.append(rule) @@ -330,6 +329,7 @@ class CustomIoaRule: modified_on: datetime version_ids: List[str] pattern_id: str + rulegroup_id: str def __init__( self, @@ -385,6 +385,7 @@ def __init__( self.modified_on = None self.version_ids = None self.pattern_id = None + self.rulegroup_id = None def __repr__(self): """Return an unambiguous string representation of the CustomIoaRule and its properties. @@ -441,6 +442,7 @@ def from_data_dict(data_dict: dict, rule_type: RuleType) -> CustomIoaRule: rule.version_ids = data_dict["version_ids"] rule.pattern_id = data_dict["pattern_id"] rule.comment = data_dict["comment"] + rule.rulegroup_id = data_dict["rulegroup_id"] rule.fields = {} for field_value in data_dict["field_values"]: @@ -622,6 +624,7 @@ def dump(self) -> dict: "action_label": self.action_label, "ruletype_id": self.rule_type.id_, "ruletype_name": self.rule_type.name, + "rulegroup_id": self.rulegroup_id, "field_values": list(self.fields.values()), "enabled": self.enabled, "deleted": self.deleted, diff --git a/tests/unit_tests/test_custom_ioas.py b/tests/unit_tests/test_custom_ioas.py index 0312283..228f3c2 100644 --- a/tests/unit_tests/test_custom_ioas.py +++ b/tests/unit_tests/test_custom_ioas.py @@ -103,6 +103,7 @@ def mock_create_rule(body, comment=None): "pattern_severity": body["pattern_severity"], "disposition_id": body["disposition_id"], "action_label": rule_type.disposition_map[body["disposition_id"]], + "rulegroup_id": "test_group_01", "ruletype_id": body["ruletype_id"], "ruletype_name": rule_type.name, "field_values": body["field_values"], @@ -332,6 +333,7 @@ def test_describe_rule_groups_with_rules( "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": simple_rule_type.id_, "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": [], "enabled": True, "deleted": False, @@ -373,7 +375,6 @@ def mock_query_rule_groups_full(offset, limit, filter): # Call caracara groups = client.custom_ioas.describe_rule_groups(filters="test_filter") - assert len(mock_groups) == len(groups) for mock_group in mock_groups: assert mock_group["id"] in groups.keys() @@ -508,6 +509,7 @@ def test_update_rule_groups_with_rule_changes( "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": simple_rule_type.id_, "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": [], "enabled": True, "deleted": False, @@ -532,6 +534,7 @@ def test_update_rule_groups_with_rule_changes( "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": simple_rule_type.id_, "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": [], "enabled": True, "deleted": False, @@ -617,6 +620,7 @@ def mock_create_rule(body): "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": body["ruletype_id"], "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": body["field_values"], "enabled": False, "deleted": False, @@ -735,6 +739,7 @@ def test_update_rule_group_with_new_rules( "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": simple_rule_type.id_, "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": [], "enabled": True, "deleted": False, @@ -759,6 +764,7 @@ def test_update_rule_group_with_new_rules( "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": simple_rule_type.id_, "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": [], "enabled": True, "deleted": False, @@ -808,6 +814,7 @@ def mock_create_rule(body): "action_label": list(simple_rule_type.disposition_map.values())[0], "ruletype_id": body["ruletype_id"], "ruletype_name": simple_rule_type.name, + "rulegroup_id": "test_group_01", "field_values": body["field_values"], "enabled": False, "deleted": False,