From 77c1168d02b1734b29fb8aafdc01039ba50cba05 Mon Sep 17 00:00:00 2001 From: Federico Foschini Date: Mon, 24 Jul 2023 18:28:47 +0200 Subject: [PATCH 1/2] Fix overwriting certego field --- CHANGELOG.md | 5 ++++- routingfilter/routing.py | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) 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!") From f62db4b1eb3a539b35732c1c328ca071736c862e Mon Sep 17 00:00:00 2001 From: Federico Foschini Date: Tue, 25 Jul 2023 12:00:18 +0200 Subject: [PATCH 2/2] Fixed tests --- routingfilter/routing_test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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))