Exemplo n.º 1
0
 def test_mac_address(self):
     """Testing mac address: alphanumeric with separaators and 12 chars"""
     field = StringField()
     field.data = "1234"
     self.assertRaises(ValidationError, valid_mac_address, None, field)
     field.data = "AA:AA:AA:AA:AA"
     self.assertRaises(ValidationError, valid_mac_address, None, field)
     field.data = "AA:AA:AA:GG:11:AA"
     self.assertRaises(ValidationError, valid_mac_address, None, field)
     field.data = "AA:AA:AA:AA:AA:AA:AA"
     self.assertRaises(ValidationError, valid_mac_address, None, field)
Exemplo n.º 2
0
 def validate_new_hotel(self, hotel: StringField):
     if self.form_type.data != self.NEW_HOTEL:
         return
     hotel.data = hotel.data.strip()
     if not hotel.data:
         raise ValidationError("Hotel name cannot be blank")
     if Hotel.objects.filter_by(city=current_user.city,
                                name=hotel.data).first():
         raise ValidationError("Hotel name must be unique")
Exemplo n.º 3
0
def test_orcid_validation(test_form):  # noqa

    orcid_id = StringField("ORCID iD", [
        validate_orcid_id_field,
    ])
    orcid_id.data = "0000-0001-8228-7153"
    validate_orcid_id_field(test_form, orcid_id)

    orcid_id.data = "INVALID FORMAT"
    with pytest.raises(ValueError) as excinfo:
        validate_orcid_id_field(test_form, orcid_id)
    assert f"Invalid ORCID iD {orcid_id.data}. It should be in the form of 'xxxx-xxxx-xxxx-xxxx' where x is a digit." \
           in str(excinfo.value)

    orcid_id.data = "0000-0001-8228-7154"
    with pytest.raises(ValueError) as excinfo:
        validate_orcid_id_field(test_form, orcid_id)
    assert f"Invalid ORCID iD {orcid_id.data} checksum. Make sure you have entered correct ORCID iD." in str(
        excinfo.value)
Exemplo n.º 4
0
    def validate_link(self, field: StringField):
        """Performs validation on the link StringField. If a link is provided,
        confirms that it is not in use. If the field is empty, generate a
        unique value.

        Args:
            field (StringField): an instance of a WTForms StringField.

        Raises:
            ValidationError: the link value provided is already in use, or
                contains illegal characters.
        """
        if field.data:
            link = Link.active_with_link(field.data, include_expiration=True) \
                .filter(Link.id != self.id.data) \
                .first()
            if link:
                raise ValidationError('This link is already in use.')

            if not all(char in Link.VALID_CHARS for char in field.data):
                raise ValidationError('The link contains invalid characters')
        else:
            field.data = Link.unique_link()
Exemplo n.º 5
0
 def test_rego(self):
     """Testing car rego: 6 chars and alphanumeric"""
     field = StringField()
     field.data = "%$123as"
     self.assertRaises(ValidationError, valid_rego, None, field)
Exemplo n.º 6
0
 def sample_email(self) -> StringField:
     """Sample StringField of an email."""
     field = StringField()
     field.data = '*****@*****.**'
     return field
Exemplo n.º 7
0
 def sample_username(self) -> StringField:
     """Sample StringField of an username."""
     field = StringField()
     field.data = 'uSeRnAmE'
     return field
Exemplo n.º 8
0
 def invalid_field(self) -> StringField:
     """String Field of an invalid name."""
     string_field = StringField()
     string_field.data = 'hello!'
     return string_field
Exemplo n.º 9
0
 def valid_field(self) -> StringField:
     """String Field of a valid name."""
     field = StringField()
     field.data = 'HE LL-o'
     return field