Ejemplo n.º 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))
Ejemplo n.º 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'))
Ejemplo n.º 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'))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 24
0
    def test_evaluate_rule_set_on_empty_list_should_be_false(self):
        when = {"condition": "set"}

        self.assertFalse(evaluate_rule(when, []))
Ejemplo n.º 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))
Ejemplo n.º 26
0
    def test_evaluate_rule_set_on_list_with_data_should_be_true(self):
        when = {"condition": "set"}

        self.assertTrue(evaluate_rule(when, ["123"]))
Ejemplo n.º 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"]))
Ejemplo n.º 28
0
    def test_evaluate_rule_not_set_on_empty_list_should_be_true(self):
        when = {"condition": "not set"}

        self.assertTrue(evaluate_rule(when, []))
Ejemplo n.º 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"))
Ejemplo n.º 30
0
    def test_evaluate_rule_not_set_should_be_true(self):
        when = {"condition": "not set"}

        self.assertTrue(evaluate_rule(when, None))