class ClientForm(Form): email = EmailField(required=True, max_len=60) name = StringField(required=True, max_len=50) def validate(self): errors = super(ClientForm, self).validate() if not re.match(r'.+ .+', self.name): errors['name'] = 'Nome informado deve ser completo' return errors
class AddressForm(Form): street = StringField(required=True, max_len=80) number = StringField(required=True, max_len=20) quarter = StringField(required=True, max_len=60) postalcode = CepField(required=True) town = StringField(required=True, max_len=60, min_len=2) state = StringField(required=True, exactly_len=2) complement = StringField(default="Sem Complemento", max_len=40) country = 'BRA'
def test_str_exactly_len_chars(self): field = StringField(exactly_len=10) field._set_attr_name('n') self.assertEqual('Has 11 characters and it must have exactly 10', field.validate_field('a' * 11)) self.assertEqual('Has 9 characters and it must have exactly 10', field.validate_field('a' * 9)) self.assertIsNone(field.validate_field('a' * 10))
def test_str_min_len_chars(self): field = StringField(min_len=2) field._set_attr_name('n') self.assertEqual('Has 1 characters and it must have 2 or more', field.validate_field('a')) self.assertIsNone(field.validate_field('aa')) self.assertIsNone(field.validate_field('aaa'))
def test_str_max_len_chars(self): field = StringField(max_len=10) field._set_attr_name('n') self.assertEqual('Has 11 characters and it must have 10 or less', field.validate_field('a' * 11))
def test_str_with_more_than_500_chars_but_with_no_max(self): field = StringField(max_len=None) self.assertIsNone(field.validate_field('a' * 501))
def test_str_with_more_than_500_chars(self): field = StringField() field._set_attr_name('n') self.assertEqual('Has 1501 characters and it must have 1500 or less', field.validate_field('a' * (base._MAX_STRING_LENGTH+1)))