diff --git a/CHANGELOG.md b/CHANGELOG.md index 08b123e..6e0b734 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ ## 1.6.x +### 1.6.3 +#### Bugfix +* Fix overwriting of certego field ### 1.6.2 #### Bugfix * Added filter in routing_filter @@ -22,7 +25,7 @@ * Added routing history and loop protection in rule parsing ## 1.4.x -### 1.4.1 +### 1.4.1+ #### Bugfix * Updated *setup.py* to include new dependency *macaddress* ### 1.4.0 diff --git a/routingfilter/routing.py b/routingfilter/routing.py index d31e65e..2ec5b3f 100644 --- a/routingfilter/routing.py +++ b/routingfilter/routing.py @@ -36,8 +36,12 @@ def match(self, event: dict, type_: str = "streams", tag_field_name: str = "tags :return: A list of dicts containing the matched rules and the outputs in the following format: {"rules": [...], "output": {...}}; an empty list if no rule matched :rtype: List[dict] """ - if not event.get("certego", {}).get("routing_history", {}): - event["certego"] = {"routing_history": {}} + # Creating routing_history if not present + if "certego" not in event: + event["certego"] = {} + if "routing_history" not in event["certego"]: + event["certego"]["routing_history"] = {} + # check for rules if not self.rules: self.logger.error("'rules_list' must be set before evaluating a match!") raise ValueError("'rules_list' must be set before evaluating a match!") diff --git a/routingfilter/routing_test.py b/routingfilter/routing_test.py index 49ea01c..010d447 100644 --- a/routingfilter/routing_test.py +++ b/routingfilter/routing_test.py @@ -373,9 +373,9 @@ def test_rule_in_routing_history(self): "streams": { } } - self.assertFalse(self.routing.rule_in_routing_history(event, rule)) + self.assertFalse(self.routing.rule_in_routing_history("streams", event, rule)) event = {"certego": {"routing_history": {"Workshop": "2023-06-06T18:00:00.000Z"}}} - self.assertFalse(self.routing.rule_in_routing_history(event, rule)) + self.assertFalse(self.routing.rule_in_routing_history("streams", event, rule)) rule = { "filters": [ { @@ -394,6 +394,6 @@ def test_rule_in_routing_history(self): } } } - self.assertTrue(self.routing.rule_in_routing_history(event, rule)) + self.assertTrue(self.routing.rule_in_routing_history("streams", event, rule))