def _validate_email_from_signup_settings(email: str): email_parts = email.split('@') mail_server = email_parts[1] whitelist = list() if signup_settings.domains_for_email_signup_whitelist: whitelist = [x.strip() for x in signup_settings.domains_for_email_signup_whitelist.split(',')] blacklist = list() if signup_settings.forbidden_domains_for_email_signup: blacklist = [y.strip() for y in signup_settings.forbidden_domains_for_email_signup.split(',')] if mail_server in whitelist: # always allow whitelisted domain names for emails pass else: if not signup_settings.allow_free_email_addresses: if is_free_mail(email=email): raise serializers.ValidationError( _('You cannot register using an email address from free email services') ) if mail_server in blacklist: raise serializers.ValidationError( _('You cannot register using this kind of email address') ) return True
def test_gmail(self): self.assertTrue(is_free_mail('*****@*****.**'))
def test_mail_ru(self): self.assertTrue(is_free_mail('*****@*****.**'))
def test_no_at(self): self.assertFalse(is_free_mail('someinvalidemail'))
def test_mutliple_at(self): self.assertFalse(is_free_mail('sosxs33me@inv@alid@email'))
def test_hosterion(self): self.assertFalse(is_free_mail('*****@*****.**'))
def test_fleio(self): self.assertFalse(is_free_mail('*****@*****.**'))
def test_microsoft(self): self.assertFalse(is_free_mail('*****@*****.**'))
def test_google(self): self.assertFalse(is_free_mail('*****@*****.**'))
def test_plus_address(self): self.assertTrue(is_free_mail('*****@*****.**'))
def test_hotmail(self): self.assertTrue(is_free_mail('*****@*****.**'))
def test_email_ro(self): self.assertTrue(is_free_mail('*****@*****.**'))