def test_check_incorrect_method_name(self):
     condition = {'name': 'food',
                  'operator': 'equal_to',
                  'value': 'm'}
     err_string = 'Variable food is not defined in class SomeVariables'
     with self.assertRaisesRegexp(AssertionError, err_string):
         check_condition(condition, SomeVariables())
 def test_check_incorrect_method_name(self):
     condition = {'name': 'food',
                  'operator': 'equal_to',
                  'value': 'm'}
     err_string = 'Variable food is not defined in class SomeVariables'
     with self.assertRaisesRegexp(AssertionError, err_string):
         check_condition(condition, SomeVariables())
 def test_check_incorrect_operator_name(self):
     condition = {
         'name': 'foo',
         'operator': 'equal_tooooze',
         'value': 'foo'
     }
     with self.assertRaises(AssertionError):
         check_condition(condition, SomeVariables())
 def test_check_missing_params(self):
     condition = {'name': 'x_plus_one',
                  'operator': 'equal_to',
                  'value': 10,
                  'params': {}}
     err_string = 'Missing parameters x for variable x_plus_one'
     with self.assertRaisesRegexp(AssertionError, err_string):
         check_condition(condition, SomeVariables())
 def test_check_invalid_params(self):
     condition = {'name': 'x_plus_one',
                  'operator': 'equal_to',
                  'value': 10,
                  'params': {'x': 9, 'y': 9}}
     err_string = 'Invalid parameters y for variable x_plus_one'
     with self.assertRaisesRegexp(AssertionError, err_string):
         check_condition(condition, SomeVariables())
    def test_check_missing_params(self):
        condition = {
            'name': 'x_plus_one',
            'operator': 'equal_to',
            'value': 10,
            'params': {}
        }

        rule = {'conditions': condition}

        err_string = 'Missing parameters x for variable x_plus_one'

        with self.assertRaisesRegexp(AssertionError, err_string):
            check_condition(condition, SomeVariables(), rule)
 def test_check_numeric_rule_works_with_tuples(self):
     condition = {
         'name': 'returns_tuple',
         'operator': 'equal_to',
         'value': 10
     }
     self.assertTrue(check_condition(condition, SomeVariables()))
    def test_false_boolean_variable(self):
        condition = {'name': 'true_bool', 'operator': 'is_false', 'value': ''}

        rule = {'conditions': condition}

        condition_result = check_condition(condition, SomeVariables(), rule)
        self.assertFalse(condition_result.result)
    def test_check_invalid_params(self):
        condition = {
            'name': 'x_plus_one',
            'operator': 'equal_to',
            'value': 10,
            'params': {'x': 9, 'y': 9}
        }

        rule = {
            'conditions': condition
        }

        err_string = 'Invalid parameters y for variable x_plus_one'

        with self.assertRaisesRegex(AssertionError, err_string):
            check_condition(condition, SomeVariables(), rule)
    def test_check_true_condition_happy_path(self):
        condition = {'name': 'foo', 'operator': 'contains', 'value': 'o'}

        rule = {'conditions': condition}

        condition_result = check_condition(condition, SomeVariables(), rule)
        self.assertTrue(condition_result.result)
 def test_check_false_condition_happy_path_with_context(self):
     condition = {
         'name': 'series_of_values_indexed_by_minute',
         'operator': 'equal_to',
         'value': 1,
         'context': 10
     }
     self.assertFalse(check_condition(condition, SomeVariables()))
 def test_false_boolean_variable(self):
     condition = {
         'name': 'true_bool',
         'operator': 'is_false',
         'value': ''
     }
     res = check_condition(condition, SomeVariables())
     self.assertFalse(res)
示例#13
0
 def test_false_boolean_variable(self):
     condition = {
         'name': 'true_bool',
         'operator': 'is_false',
         'value': ''
     }
     res = check_condition(condition, SomeVariables())
     self.assertFalse(res)
    def test_string_variable_with_options_with_wrong_value(self):
        condition = {
            'name': 'string_variable_with_options',
            'operator': 'equal_to',
            'value': 'foo',
        }

        rule = {'conditions': condition}

        condition_result = check_condition(condition, SomeVariables(), rule)
        self.assertTrue(condition_result)
    def test_variable_received_rules(self):
        condition = {
            'name': 'rule_received',
            'operator': 'is_true',
            'value': 'true',
        }

        rule = {'conditions': condition}

        condition_result = check_condition(condition, SomeVariables(), rule)
        self.assertTrue(condition_result)
    def test_numeric_variable_with_params(self):
        condition = {
            'name': 'x_plus_one',
            'operator': 'equal_to',
            'value': 10,
            'params': {
                'x': 9
            }
        }

        rule = {'conditions': condition}

        condition_result = check_condition(condition, SomeVariables(), rule)

        self.assertTrue(condition_result.result)
示例#17
0
    def test_check_condition_no_override(self, *args):
        condition = {
            'name': 'name_x',
            'operator': 'operator_x',
            'value': 'value_x'
        }
        variables = BaseVariables()

        result, overrides = engine.check_condition(condition, variables)
        self.assertEqual(
            engine._get_variable_value_and_actions_params.call_count, 1)
        self.assertEqual(engine._do_operator_comparison.call_count, 1)
        engine._get_variable_value_and_actions_params.assert_called_with(
            variables, 'name_x', OVERRIDE_NONE)
        engine._do_operator_comparison.assert_called_with(
            FAKE_OPERATOR, 'operator_x', 'value_x')
        self.assertTrue(result)
        self.assertDictEqual(overrides, OVERRIDE_A1)
示例#18
0
 def test_check_false_condition_happy_path(self):
     condition = {'name': 'foo',
                  'operator': 'contains',
                  'value': 'm'}
     self.assertFalse(check_condition(condition, SomeVariables()))
示例#19
0
 def test_check_false_condition_happy_path(self):
     condition = {'name': 'foo', 'operator': 'contains', 'value': 'm'}
     result, overrides = check_condition(condition, SomeVariables())
     self.assertFalse(result)
     self.assertDictEqual(overrides, {})
示例#20
0
 def test_numeric_variable_with_params(self):
     condition = {'name': 'x_plus_one',
                  'operator': 'equal_to',
                  'value': 10,
                  'params': {'x': 9}}
     self.assertTrue(check_condition(condition, SomeVariables()))
示例#21
0
 def test_check_incorrect_operator_name(self):
     condition = {'name': 'foo',
                  'operator': 'equal_tooooze',
                  'value': 'foo'}
     with self.assertRaises(AssertionError):
         check_condition(condition, SomeVariables())
 def test_check_true_condition_happy_path(self):
     condition = {'name': 'foo', 'operator': 'contains', 'value': 'o'}
     self.assertTrue(check_condition(condition, SomeVariables()))