support unicode in EmailField
This commit is contained in:
@@ -342,8 +342,6 @@ class FieldTest(MongoDBTestCase):
|
||||
class Link(Document):
|
||||
url = URLField()
|
||||
|
||||
Link.drop_collection()
|
||||
|
||||
link = Link()
|
||||
link.url = 'google'
|
||||
self.assertRaises(ValidationError, link.validate)
|
||||
@@ -356,8 +354,6 @@ class FieldTest(MongoDBTestCase):
|
||||
class Link(Document):
|
||||
url = URLField()
|
||||
|
||||
Link.drop_collection()
|
||||
|
||||
link = Link()
|
||||
link.url = u'http://привет.com'
|
||||
|
||||
@@ -3456,25 +3452,57 @@ class FieldTest(MongoDBTestCase):
|
||||
class User(Document):
|
||||
email = EmailField()
|
||||
|
||||
user = User(email="ross@example.com")
|
||||
self.assertTrue(user.validate() is None)
|
||||
user = User(email='ross@example.com')
|
||||
user.validate()
|
||||
|
||||
user = User(email="ross@example.co.uk")
|
||||
self.assertTrue(user.validate() is None)
|
||||
user = User(email='ross@example.co.uk')
|
||||
user.validate()
|
||||
|
||||
user = User(email=("Kofq@rhom0e4klgauOhpbpNdogawnyIKvQS0wk2mjqrgGQ5S"
|
||||
"aJIazqqWkm7.net"))
|
||||
self.assertTrue(user.validate() is None)
|
||||
user = User(email=('Kofq@rhom0e4klgauOhpbpNdogawnyIKvQS0wk2mjqrgGQ5S'
|
||||
'aJIazqqWkm7.net'))
|
||||
user.validate()
|
||||
|
||||
user = User(email="new-tld@example.technology")
|
||||
self.assertTrue(user.validate() is None)
|
||||
user = User(email='new-tld@example.technology')
|
||||
user.validate()
|
||||
|
||||
user = User(email='ross@example.com.')
|
||||
self.assertRaises(ValidationError, user.validate)
|
||||
|
||||
# localhost should be whitelisted by default
|
||||
user = User(email='me@localhost')
|
||||
user.validate()
|
||||
|
||||
# valid IPv4 domain
|
||||
user = User(email='email@[127.0.0.1]')
|
||||
user.validate()
|
||||
|
||||
# valid IPv6 domain
|
||||
user = User(email='email@[2001:dB8::1]')
|
||||
user.validate()
|
||||
|
||||
# invalid IP
|
||||
user = User(email='email@[324.0.0.1]')
|
||||
self.assertRaises(ValidationError, user.validate)
|
||||
|
||||
user = User(email="ross@example.com.")
|
||||
# unicode domain
|
||||
user = User(email=u'user@пример.рф')
|
||||
user.validate()
|
||||
|
||||
# invalid unicode domain
|
||||
user = User(email=u'user@пример')
|
||||
self.assertRaises(ValidationError, user.validate)
|
||||
|
||||
# unicode user shouldn't validate by default...
|
||||
user = User(email=u'Dörte@Sörensen.example.com')
|
||||
self.assertRaises(ValidationError, user.validate)
|
||||
|
||||
# ...but it should be fine with allow_utf8_user set to True
|
||||
class User(Document):
|
||||
email = EmailField(allow_utf8_user=True)
|
||||
|
||||
user = User(email=u'Dörte@Sörensen.example.com')
|
||||
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