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 != [], ])
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'
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'
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
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