def test_run_rules_without_variables(self): actions = SomeActions() run( { "conditions": { "name": "ten", "operator": "equal_to", "value": 10 }, "actions": [{ "name": "some_action", "params": { "foo": 5 } }] }, SomeVariables(), actions) self.assertEquals(actions.result, 5)
def test_run_rules_with_undefined_variables(self): actions = SomeActions() with self.assertRaises(AssertionError): run( { "conditions": { "name": "ten", "operator": "equal_to", "value": 10 }, "actions": [{ "name": "some_action", "params": { "foo": "${net}" } }] }, SomeVariables(), actions)
def test_run_that_doesnt_trigger_rule(self, *args): rule = {'conditions': 'blah', 'actions': 'blah2'} variables = BaseVariables() actions = BaseActions() result = engine.run(rule, variables, actions) self.assertEqual(result, False) engine.check_conditions_recursively.assert_called_once_with( rule['conditions'], variables, None) self.assertEqual(engine.do_actions.call_count, 0)
def test_run_that_doesnt_trigger_rule(self, *args): rule = {'conditions': 'blah', 'actions': 'blah2'} variables = BaseVariables() actions = BaseActions() result = engine.run(rule, variables, actions) self.assertEqual(result, False) engine.check_conditions_recursively.assert_called_once_with( rule['conditions'], variables) self.assertEqual(engine.do_actions.call_count, 0)
def test_run_that_triggers_rule(self, *args): rule = {'conditions': 'blah', 'actions': 'blah2'} variables = BaseVariables() actions = BaseActions() result = engine.run(rule, variables, actions) expected = None self.assertEqual(result, expected) engine.check_conditions_recursively.assert_called_once_with( rule['conditions'], variables) engine.do_actions.assert_called_once_with(rule['actions'], actions)
def test_run_that_triggers_rule_with_overrides(self, *args): rule = {'conditions': 'blah', 'actions': 'blah2'} variables = BaseVariables() actions = BaseActions() result = engine.run(rule, variables, actions) self.assertEqual(result, True) engine.check_conditions_recursively.assert_called_once_with( rule['conditions'], variables) engine.do_actions.assert_called_once_with(rule['actions'], actions, override_params=OVERRIDE_A1)