From 414a59eb94fbe5a2d503ad1122049efa64006f42 Mon Sep 17 00:00:00 2001 From: Elizabeth Esswein Date: Thu, 17 Nov 2022 14:57:25 -0500 Subject: [PATCH] disambiguate DMN expressions --- SpiffWorkflow/dmn/engine/DMNEngine.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SpiffWorkflow/dmn/engine/DMNEngine.py b/SpiffWorkflow/dmn/engine/DMNEngine.py index c0e8dfd1..d2b10532 100644 --- a/SpiffWorkflow/dmn/engine/DMNEngine.py +++ b/SpiffWorkflow/dmn/engine/DMNEngine.py @@ -95,7 +95,8 @@ def evaluate(self, input_expr, match_expr, task): # If we get here, we need to check whether the match expression includes # an operator or if can use '==' needs_eq = self.needs_eq(script_engine, match_expr) - expr = input_expr + ' == ' + match_expr if needs_eq else input_expr + match_expr + # Disambiguate cases like a == 0 == True when we add '==' + expr = f'({input_expr}) == ({match_expr})' if needs_eq else input_expr + match_expr return script_engine.evaluate(task, expr) @staticmethod