def validate_email(self, value): if self.partial_email: return try: validate_email_address(value) except InvalidEmailError as e: raise ValidationError(str(e))
def __call__(self, form, field): if field.data == '': return try: validate_email_address(field.data) except InvalidEmailError: raise ValidationError(self.message)
def __post_init__(self): # email address is mandatory for us assert len(self.email_address), "email can NOT be blank" validate_email_address(self.email_address) # HTML sanitize all fields that are string based for f in fields(self): try: if issubclass(f.type, str): setattr(self, f.name, str(escape(getattr(self, f.name)))) except TypeError: pass
def test_validate_government_domain_data(): for domain in AgreementInfo.domains.keys(): validate_email_address('test@{}'.format(domain)) agreement_info = AgreementInfo(domain) assert agreement_info.crown_status in {True, False, None} assert (agreement_info.owner is None) or (isinstance( agreement_info.owner, str)) assert agreement_info.agreement_signed in {True, False, None}
def from_string(cls, service_id, recipient_type, recipient): instance = cls(service_id=service_id, recipient_type=recipient_type) try: if recipient_type == MOBILE_TYPE: validate_phone_number(recipient) instance.recipient = recipient elif recipient_type == EMAIL_TYPE: validate_email_address(recipient) instance.recipient = recipient else: raise ValueError('Invalid recipient type') except InvalidPhoneError: raise ValueError('Invalid whitelist: "{}"'.format(recipient)) except InvalidEmailError: raise ValueError('Invalid whitelist: "{}"'.format(recipient)) else: return instance
def test_validate_email_domain_data(): for domain in GovernmentEmailDomain.domains.keys(): validate_email_address('test@{}'.format(domain))
def validate_schema_email_address(instance): if isinstance(instance, str): validate_email_address(instance) return True
def validate_to(self, value): try: validate_email_address(value) except InvalidEmailError as e: raise ValidationError(str(e))
def test_validate_email_address_raises_for_invalid(email_address): with pytest.raises(InvalidEmailError) as e: validate_email_address(email_address) assert str(e.value) == 'Not a valid email address'
def validate_schema_email_address(instance): if instance is not None: validate_email_address(instance) return True
def test_validate_email_address_accepts_valid(email_address): try: assert validate_email_address(email_address) == email_address except InvalidEmailError: pytest.fail('Unexpected InvalidEmailError')
def test_validate_email_address_strips_whitespace(email): assert validate_email_address(email) == '*****@*****.**'
def __call__(self, form, field): try: validate_email_address(field.data) except InvalidEmailError: raise ValidationError(self.message) return super().__call__(form, field)
def validate_email(self, value): try: validate_email_address(value) except InvalidEmailError as e: raise ValidationError(e.message)
def test_validate_email_address_strips_whitespace(): assert validate_email_address('[email protected] ') == '*****@*****.**'
def test_validate_email_address_raises_for_invalid(email_address): with pytest.raises(InvalidEmailError): validate_email_address(email_address)