Пример #1
0
    def test_validator(self):
        fieldset = fields.Fieldset([
            fields.StringField('card1', validators=[validators.CardNumber()]),
            fields.StringField('card2', validators=[validators.CardNumber()]),
            fields.StringField('card3', validators=[validators.CardNumber()]),
            fields.StringField('card4', validators=[validators.CardNumber()]),
            fields.StringField('card5', validators=[validators.CardNumber()]),
        ])

        fieldset.populate({
            'card1': '1234 5678 9012 3456',
            'card2': '1234567890123456',
            'card3': '1234-5678-1234-5678',
            'card4': 'not a card number',
            'card5': '1234card1234numb'
        })

        fieldset.validate(quiet=True)

        assert all([
            fieldset['card1'].errors == [],
            fieldset['card2'].errors == [],
            fieldset['card3'].errors != [],
            fieldset['card4'].errors != [],
            fieldset['card5'].errors != [],
        ])
Пример #2
0
    def test_field(self):
        field = fields.MultiTypeField(
            'multifield',
            fields={
                'str': fields.StringField('multifield'),
                'int': fields.IntegerField('multifield'),
                'list': fields.ListField('multifield')
            },
            description="Field of type based on it's content",
        )

        str_field = copy(field)
        str_field.value = 'Lorem ipsum dolor sit amet'
        str_field.validate()
        assert isinstance(str_field, fields.StringField)

        int_field = copy(field)
        int_field.value = 42
        int_field.validate()
        assert isinstance(int_field, fields.IntegerField)

        lst_field = copy(field)
        lst_field.value = [4, 8, 15, 16, 23, 42]
        lst_field.validate()
        assert isinstance(lst_field, fields.ListField)

        float_field = copy(field)
        float_field.value = 2.23
        float_field.validate(quiet=True)
        assert float_field.errors[0].code == 'UNRECOGNIZED-VALUE-TYPE'
Пример #3
0
    def test_transformer(self):
        fieldset = fields.Fieldset([
            fields.StringField('string1',
                               transform_before=[transformers.StripChars('w')
                                                 ]),
            fields.StringField('string2',
                               transform_after=[transformers.StripChars('x')]),
            fields.StringField('string3',
                               transform_before=[transformers.StripChars('w')],
                               transform_after=[transformers.StripChars('x')]),
        ])

        fieldset['string1'] = 'abcdefwwww'
        fieldset['string2'] = 'abcdefxxx'
        fieldset['string3'] = 'wwwabcdefxxx'

        fieldset.validate()

        assert fieldset.fields[0].value == 'abcdef'
        assert fieldset.fields[1].value == 'abcdef'
        assert fieldset.fields[2].value == 'abcdef'
Пример #4
0
    def test_unsucessfull(self):
        fieldset = fields.Fieldset([
            fields.StringField('field_str'),
            fields.FloatField('field_float'),
            fields.IntegerField('field_integer'),
            fields.ListField('field_list')
        ])
        for f in fieldset.fields:
            f.validators = [validators.Required()]

        fieldset['field_str'] = ''
        fieldset['field_float'] = 0
        fieldset['field_integer'] = 0
        fieldset['field_list'] = []

        fieldset.validate(quiet=True)

        assert len(fieldset.errors) == 2
Пример #5
0
    def test_successfull(self):
        fieldset = fields.Fieldset([
            fields.StringField('field_str'),
            fields.FloatField('field_float'),
            fields.IntegerField('field_integer'),
            fields.ListField('field_list')
        ])
        for f in fieldset.fields:
            f.validators = [validators.Required()]

        fieldset['field_str'] = 'Lorem ipsum dolor sit amet'
        fieldset['field_float'] = 23.3
        fieldset['field_integer'] = 23
        fieldset['field_list'] = ['something']

        try:
            fieldset.validate()
        except exceptions.ValidationError:
            assert False