Example #1
0
    def test_evaluate_rule_less_than_or_equals_with_number(self):
        when = {"value": 4, "condition": "less than or equal to"}

        self.assertTrue(evaluate_rule(when, 4))
        self.assertTrue(evaluate_rule(when, 3))
        self.assertFalse(evaluate_rule(when, 5))
        self.assertFalse(evaluate_rule(when, None))
Example #2
0
    def test_evaluate_rule_checkbox_not_contains_any(self):
        when = {'values': ['aaa', 'bbb'], 'condition': 'not contains any'}

        self.assertTrue(evaluate_rule(when, ['ccc']))
        self.assertFalse(evaluate_rule(when, ['bbb', 'ccc']))
        self.assertFalse(evaluate_rule(when, ['aaa', 'bbb']))
        self.assertFalse(evaluate_rule(when, ['aaa', 'bbb', 'ccc']))
    def test_evaluate_rule_not_set_should_be_false(self):
        when = {
            'condition': 'not set'
        }

        self.assertFalse(evaluate_rule(when, ''))
        self.assertFalse(evaluate_rule(when, 'some text'))
Example #4
0
    def test_evaluate_rule_radio_not_contains_any(self):
        when = {'values': ['a', 'b'], 'condition': 'not contains any'}

        self.assertTrue(evaluate_rule(when, 'c'))
        self.assertTrue(evaluate_rule(when, ''))
        self.assertFalse(evaluate_rule(when, 'b'))
        self.assertFalse(evaluate_rule(when, 'a'))
Example #5
0
    def test_evaluate_rule_less_than_or_equals_with_number(self):
        when = {'value': 4, 'condition': 'less than or equal to'}

        self.assertTrue(evaluate_rule(when, 4))
        self.assertTrue(evaluate_rule(when, 3))
        self.assertFalse(evaluate_rule(when, 5))
        self.assertFalse(evaluate_rule(when, None))
Example #6
0
    def test_evaluate_rule_uses_boolean_value(self):
        when = {"value": False, "condition": "equals"}

        self.assertTrue(evaluate_rule(when, False))

        when = {"value": True, "condition": "not equals"}

        self.assertTrue(evaluate_rule(when, False))
Example #7
0
    def test_evaluate_rule_uses_boolean_value(self):
        when = {'value': False, 'condition': 'equals'}

        self.assertTrue(evaluate_rule(when, False))

        when = {'value': True, 'condition': 'not equals'}

        self.assertTrue(evaluate_rule(when, False))
    def test_evaluate_rule_not_equals_with_number(self):
        when = {
            'value': 0,
            'condition': 'not equals'
        }

        self.assertTrue(evaluate_rule(when, 2))
        self.assertFalse(evaluate_rule(when, 0))
Example #9
0
    def test_evaluate_rule_not_equals_any_with_string_case_insensitive(self):
        when = {
            "value": ["answerValue", "notAnswerValue"],
            "condition": "not equals any",
        }

        self.assertFalse(evaluate_rule(when, "answervalue"))
        self.assertFalse(evaluate_rule(when, "answerValue"))
        self.assertTrue(evaluate_rule(when, "answer-value"))
    def test_evaluate_rule_less_than_with_number(self):
        when = {
            'value': 5,
            'condition': 'less than'
        }

        self.assertTrue(evaluate_rule(when, 3))
        self.assertFalse(evaluate_rule(when, 5))
        self.assertFalse(evaluate_rule(when, 7))
    def test_evaluate_rule_uses_single_value_from_list(self):
        when = {
            'value': 'singleAnswer',
            'condition': 'contains'
        }

        list_of_answers = ['singleAnswer']

        self.assertTrue(evaluate_rule(when, list_of_answers))
    def test_evaluate_rule_uses_multiple_values_in_list_returns_false(self):
        when = {
            'value': 'firstAnswer',
            'condition': 'equals'
        }

        list_of_answers = ['firstAnswer', 'secondAnswer']

        self.assertFalse(evaluate_rule(when, list_of_answers))
Example #13
0
    def is_skipped(self, all_answers):
        if self.skip_condition is not None:
            for when_rule in self.skip_condition['when']:
                answer = all_answers.get(when_rule['id'])
                if not evaluate_rule(when_rule, answer):
                    return False
            return True

        return False
Example #14
0
    def test_skip_condition_false(self):
        answer = "Bothans"
        # find the question with the 'not equals' skip condition
        question = self.question_map["048e40da-bca4-48e5-9885-0bb6413bef62"]

        # check the skip condition exists
        self.assertIsNotNone(question['skip_condition'])

        # the condition will fire now as we have answer the question correctly, so we won't skip the question
        self.assertFalse(
            evaluate_rule(question['skip_condition']['when'][0], answer))
Example #15
0
    def test_skip_condition_blank(self):
        answer = ""

        # find the question with the 'not equals' skip condition
        question = self.question_map["048e40da-bca4-48e5-9885-0bb6413bef62"]

        # check the skip condition exists
        self.assertIsNotNone(question['skip_condition'])

        # the condition won't fire as we haven't answered any questions, so we will skip the question
        self.assertTrue(
            evaluate_rule(question['skip_condition']['when'][0], answer))
Example #16
0
    def test_skip_condition_false(self):
        answer = "Bothans"
        # find the question with the 'not equals' skip condition
        question = self.questionnaire.get_item_by_id(
            "048e40da-bca4-48e5-9885-0bb6413bef62")

        # check the parse has set up the skip condition
        self.assertIsNotNone(question.skip_condition)

        # the condition will fire now as we have answer the question correctly, so we won't skip the question
        self.assertFalse(
            evaluate_rule(question.skip_condition['when'][0], answer))
Example #17
0
    def test_skip_condition_blank(self):
        answer = ""

        # find the question with the 'not equals' skip condition
        question = self.questionnaire.get_item_by_id(
            "048e40da-bca4-48e5-9885-0bb6413bef62")

        # check the parse has set up the skip condition
        self.assertIsNotNone(question.skip_condition)

        # the condition won't fire as we haven't answered any questions, so we will skip the question
        self.assertTrue(
            evaluate_rule(question.skip_condition['when'][0], answer))
Example #18
0
    def test_evaluate_rule_set_should_be_true(self):
        when = {'condition': 'set'}

        self.assertTrue(evaluate_rule(when, ''))
        self.assertTrue(evaluate_rule(when, '0'))
        self.assertTrue(evaluate_rule(when, 'Yes'))
        self.assertTrue(evaluate_rule(when, 'No'))
        self.assertTrue(evaluate_rule(when, 0))
        self.assertTrue(evaluate_rule(when, 1))
Example #19
0
    def test_evaluate_rule_set_should_be_true(self):
        when = {"condition": "set"}

        self.assertTrue(evaluate_rule(when, ""))
        self.assertTrue(evaluate_rule(when, "0"))
        self.assertTrue(evaluate_rule(when, "Yes"))
        self.assertTrue(evaluate_rule(when, "No"))
        self.assertTrue(evaluate_rule(when, 0))
        self.assertTrue(evaluate_rule(when, 1))
Example #20
0
    def test_evaluate_rule_set_should_be_false(self):
        when = {"condition": "set"}

        self.assertFalse(evaluate_rule(when, None))
    def test_evaluate_rule_not_set_should_be_true(self):
        when = {
            'condition': 'not set'
        }

        self.assertTrue(evaluate_rule(when, None))
    def test_evaluate_rule_set_should_be_false(self):
        when = {
            'condition': 'set'
        }

        self.assertFalse(evaluate_rule(when, None))
Example #23
0
    def test_evaluate_rule_uses_multiple_values_in_list_returns_false(self):
        when = {"value": "firstAnswer", "condition": "equals"}

        list_of_answers = ["firstAnswer", "secondAnswer"]

        self.assertFalse(evaluate_rule(when, list_of_answers))
Example #24
0
    def test_evaluate_rule_set_on_empty_list_should_be_false(self):
        when = {"condition": "set"}

        self.assertFalse(evaluate_rule(when, []))
Example #25
0
    def test_evaluate_rule_not_equals_with_number(self):
        when = {"value": 0, "condition": "not equals"}

        self.assertTrue(evaluate_rule(when, 2))
        self.assertFalse(evaluate_rule(when, 0))
Example #26
0
    def test_evaluate_rule_set_on_list_with_data_should_be_true(self):
        when = {"condition": "set"}

        self.assertTrue(evaluate_rule(when, ["123"]))
Example #27
0
    def test_evaluate_rule_not_set_on_list_with_data_should_be_false(self):
        when = {"condition": "not set"}

        self.assertFalse(evaluate_rule(when, ["123"]))
Example #28
0
    def test_evaluate_rule_not_set_on_empty_list_should_be_true(self):
        when = {"condition": "not set"}

        self.assertTrue(evaluate_rule(when, []))
Example #29
0
    def test_evaluate_rule_not_set_should_be_false(self):
        when = {"condition": "not set"}

        self.assertFalse(evaluate_rule(when, ""))
        self.assertFalse(evaluate_rule(when, "some text"))
Example #30
0
    def test_evaluate_rule_not_set_should_be_true(self):
        when = {"condition": "not set"}

        self.assertTrue(evaluate_rule(when, None))