Merge pull request #534 from matthewowen/master
Reject email addresses where hostname ends with '.'
This commit is contained in:
		@@ -153,7 +153,7 @@ class EmailField(StringField):
 | 
			
		||||
    EMAIL_REGEX = re.compile(
 | 
			
		||||
        r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*"  # dot-atom
 | 
			
		||||
        r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"'  # quoted-string
 | 
			
		||||
        r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,253}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$', re.IGNORECASE  # domain
 | 
			
		||||
        r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,253}[A-Z0-9])?\.)+[A-Z]{2,6}$', re.IGNORECASE  # domain
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    def validate(self, value):
 | 
			
		||||
 
 | 
			
		||||
@@ -2499,6 +2499,9 @@ class FieldTest(unittest.TestCase):
 | 
			
		||||
        user = User(email="ross@example.com")
 | 
			
		||||
        self.assertTrue(user.validate() is None)
 | 
			
		||||
 | 
			
		||||
        user = User(email="ross@example.co.uk")
 | 
			
		||||
        self.assertTrue(user.validate() is None)
 | 
			
		||||
 | 
			
		||||
        user = User(email=("Kofq@rhom0e4klgauOhpbpNdogawnyIKvQS0wk2mjqrgGQ5S"
 | 
			
		||||
                           "ucictfqpdkK9iS1zeFw8sg7s7cwAF7suIfUfeyueLpfosjn3"
 | 
			
		||||
                           "aJIazqqWkm7.net"))
 | 
			
		||||
@@ -2507,6 +2510,9 @@ class FieldTest(unittest.TestCase):
 | 
			
		||||
        user = User(email='me@localhost')
 | 
			
		||||
        self.assertRaises(ValidationError, user.validate)
 | 
			
		||||
 | 
			
		||||
        user = User(email="ross@example.com.")
 | 
			
		||||
        self.assertRaises(ValidationError, user.validate)
 | 
			
		||||
 | 
			
		||||
    def test_email_field_honors_regex(self):
 | 
			
		||||
        class User(Document):
 | 
			
		||||
            email = EmailField(regex=r'\w+@example.com')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user