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)
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")
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)
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()
def test_rego(self): """Testing car rego: 6 chars and alphanumeric""" field = StringField() field.data = "%$123as" self.assertRaises(ValidationError, valid_rego, None, field)
def sample_email(self) -> StringField: """Sample StringField of an email.""" field = StringField() field.data = '*****@*****.**' return field
def sample_username(self) -> StringField: """Sample StringField of an username.""" field = StringField() field.data = 'uSeRnAmE' return field
def invalid_field(self) -> StringField: """String Field of an invalid name.""" string_field = StringField() string_field.data = 'hello!' return string_field
def valid_field(self) -> StringField: """String Field of a valid name.""" field = StringField() field.data = 'HE LL-o' return field