From 376d1c97ab9bce3df6f060bc18e9edd6c64a3e87 Mon Sep 17 00:00:00 2001 From: Shaun Duncan Date: Tue, 4 Dec 2012 13:08:49 -0500 Subject: [PATCH] EmailField should honor StringField validation as well --- mongoengine/fields.py | 1 + tests/test_fields.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index 1f865605..368c0009 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -141,6 +141,7 @@ class EmailField(StringField): def validate(self, value): if not EmailField.EMAIL_REGEX.match(value): self.error('Invalid Mail-address: %s' % value) + super(EmailField, self).validate(value) class IntField(BaseField): diff --git a/tests/test_fields.py b/tests/test_fields.py index 68c79b5c..db23d936 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2114,6 +2114,18 @@ class FieldTest(unittest.TestCase): post.comments[1].content = 'here we go' post.validate() + def test_email_field_honors_regex(self): + class User(Document): + email = EmailField(regex=r'\w+@example.com') + + # Fails regex validation + user = User(email='me@foo.com') + self.assertRaises(ValidationError, user.validate) + + # Passes regex validation + user = User(email='me@example.com') + self.assertTrue(user.validate() is None) + if __name__ == '__main__': unittest.main()