diff --git a/exercise.py b/exercise.py index 8e5984b..bbb030e 100644 --- a/exercise.py +++ b/exercise.py @@ -217,7 +217,7 @@ def get_model_action(data: dict): def is_accepted_query(data: dict) -> bool: model, action = get_model_action(data) if model in ['Event', 'Attribute', 'Object', 'Tag',]: - if action in ['add', 'edit', 'delete', 'publish']: + if action in ['add', 'edit', 'delete', 'publish', 'tag']: # # improved condition below. It blocks some queries # if data['Log']['change'].startswith('attribute_count'): # return False diff --git a/exercises/scam-call-encoding.json b/exercises/scam-call-encoding.json index fb8e407..8d490e1 100644 --- a/exercises/scam-call-encoding.json +++ b/exercises/scam-call-encoding.json @@ -169,7 +169,7 @@ "inject_uuid": "4c242d49-fcf7-4c76-974b-6d5983c0eff9", "reporting_callback": [], "requirements": { - "inject_uuid": "" + "inject_uuid": "de9f4c9b-dc97-4e84-85f3-859f30d3a3cd" }, "sequence": { "completion_trigger": [ @@ -340,7 +340,7 @@ } }, { - ".Event.Object[].Attribute[] | select((.type == \"domain\")).value": { + ".Event.Object[].Attribute[] | select((.type == \"domain\") or (.type == \"hostname\")).value": { "extract_type": "all", "comparison": "equals", "values": [ @@ -454,8 +454,8 @@ } }, { - ".Event.Object[] | select((.name == \"domain-ip\")).distribution": { - "comparison": "contains", + ".Event.Object[] | select((.name == \"person\")).distribution": { + "comparison": "equals_any", "values": [ "0", "1", diff --git a/inject_evaluator.py b/inject_evaluator.py index 638858c..e336c7d 100644 --- a/inject_evaluator.py +++ b/inject_evaluator.py @@ -46,6 +46,8 @@ def eval_condition_str(evaluation_config: dict, data_to_validate: str) -> bool: return len(intersection) == len(values_set) elif comparison_type == 'equals': return data_to_validate == values[0] + elif comparison_type == 'equals_any': + return data_to_validate in values elif comparison_type == 'regex': return re.fullmatch(values[0], data_to_validate) elif comparison_type == 'count':