Beispiel #1
0
    def test_deserialize_with_missing_value(self):
        """Testing Condition.deserialize with missing value in data"""
        choices = ConditionChoices([BasicTestChoice])

        with self.assertRaises(InvalidConditionValueError) as cm:
            Condition.deserialize(
                choices,
                {
                    'choice': 'basic-test-choice',
                    'op': 'basic-test-op',
                },
                condition_index=1)

        e = cm.exception
        self.assertEqual(six.text_type(e), 'A value is required.')
        self.assertEqual(e.condition_index, 1)
Beispiel #2
0
    def test_deserialize_with_missing_operator(self):
        """Testing Condition.deserialize with missing operator in data"""
        choices = ConditionChoices()

        with self.assertRaises(ConditionOperatorNotFoundError) as cm:
            Condition.deserialize(
                choices,
                {
                    'choice': 'my-choice',
                    'value': 'my-value',
                },
                condition_index=1)

        e = cm.exception
        self.assertEqual(six.text_type(e), 'An operator is required.')
        self.assertEqual(e.condition_index, 1)
Beispiel #3
0
    def test_deserialize_with_invalid_choice(self):
        """Testing Condition.deserialize with invalid choice in data"""
        choices = ConditionChoices()

        with self.assertRaises(ConditionChoiceNotFoundError) as cm:
            Condition.deserialize(
                choices,
                {
                    'choice': 'invalid-choice',
                    'op': 'my-op',
                    'value': 'my-value',
                },
                condition_index=1)

        e = cm.exception
        self.assertEqual(six.text_type(e),
                         'No condition choice was found matching '
                         '"invalid-choice".')
        self.assertEqual(e.choice_id, 'invalid-choice')
        self.assertEqual(e.condition_index, 1)
Beispiel #4
0
    def test_deserialize_with_invalid_value(self):
        """Testing Condition.deserialize with invalid value in data"""
        class MyChoice(BaseConditionChoice):
            choice_id = 'my-choice'
            operators = ConditionOperators([BasicTestOperator])
            default_value_field = ConditionValueFormField(forms.IntegerField())

        choices = ConditionChoices([MyChoice])

        with self.assertRaises(InvalidConditionValueError) as cm:
            Condition.deserialize(
                choices,
                {
                    'choice': 'my-choice',
                    'op': 'basic-test-op',
                    'value': 'invalid-value'
                },
                condition_index=1)

        e = cm.exception
        self.assertEqual(six.text_type(e), 'Enter a whole number.')
        self.assertEqual(e.code, 'invalid')
        self.assertEqual(e.condition_index, 1)
Beispiel #5
0
    def test_deserialize_with_invalid_operator(self):
        """Testing Condition.deserialize with invalid operator in data"""
        class MyChoice(BaseConditionChoice):
            choice_id = 'my-choice'
            operators = ConditionOperators()

        choices = ConditionChoices([MyChoice])

        with self.assertRaises(ConditionOperatorNotFoundError) as cm:
            Condition.deserialize(
                choices,
                {
                    'choice': 'my-choice',
                    'op': 'invalid-op',
                    'value': 'my-value',
                },
                condition_index=1)

        e = cm.exception
        self.assertEqual(six.text_type(e),
                         'No operator was found matching '
                         '"invalid-op".')
        self.assertEqual(e.operator_id, 'invalid-op')
        self.assertEqual(e.condition_index, 1)
Beispiel #6
0
    def test_deserialize(self):
        """Testing Condition.deserialize"""
        choices = ConditionChoices([BasicTestChoice])

        condition = Condition.deserialize(
            choices,
            {
                'choice': 'basic-test-choice',
                'op': 'basic-test-op',
                'value': 'my-value',
            })

        self.assertEqual(condition.choice.__class__, BasicTestChoice)
        self.assertEqual(condition.operator.__class__, BasicTestOperator)
        self.assertEqual(condition.value, 'my-value')
        self.assertEqual(condition.raw_value, 'my-value')
Beispiel #7
0
    def test_deserialize_with_choice_kwargs(self):
        """Testing Condition.deserialize with choice_kwargs"""
        choices = ConditionChoices([BasicTestChoice])

        condition = Condition.deserialize(
            choices,
            {
                'choice': 'basic-test-choice',
                'op': 'basic-test-op',
                'value': 'my-value',
            },
            choice_kwargs={
                'abc': 123,
            })

        self.assertEqual(condition.choice.__class__, BasicTestChoice)
        self.assertEqual(condition.choice.extra_state, {'abc': 123})
        self.assertEqual(condition.operator.__class__, BasicTestOperator)
        self.assertEqual(condition.value, 'my-value')
        self.assertEqual(condition.raw_value, 'my-value')
Beispiel #8
0
    def test_deserialize_with_op_value_field(self):
        """Testing Condition.deserialize with operator's value_field"""
        class MyChoice(BaseConditionChoice):
            choice_id = 'my-choice'
            operators = ConditionOperators([BooleanTestOperator])
            default_value_field = ConditionValueFormField(forms.CharField())

        choices = ConditionChoices([MyChoice])

        condition = Condition.deserialize(
            choices,
            {
                'choice': 'my-choice',
                'op': 'boolean-test-op',
                'value': True,
            })

        self.assertEqual(condition.choice.__class__, MyChoice)
        self.assertEqual(condition.operator.__class__, BooleanTestOperator)
        self.assertEqual(condition.value, True)
        self.assertEqual(condition.raw_value, True)