From 9e124926167e2565ab64976bd20e131aca330ebd Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 7 Jan 2012 18:48:12 +0000 Subject: [PATCH] [1.3.X] Fixed #17100 -- Typo in the regex for EmailValidator. Backport of r17349 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.3.X@17350 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/validators.py | 3 ++- tests/modeltests/validators/tests.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/django/core/validators.py b/django/core/validators.py index a93c6ac975..9dcc2bc3ab 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -147,7 +147,8 @@ class EmailValidator(RegexValidator): email_re = 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 + # quoted-string, see also http://tools.ietf.org/html/rfc2822#section-3.2.5 + r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"' r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$', re.IGNORECASE) # domain validate_email = EmailValidator(email_re, _(u'Enter a valid e-mail address.'), 'invalid') diff --git a/tests/modeltests/validators/tests.py b/tests/modeltests/validators/tests.py index e58526285b..4bd5827f0b 100644 --- a/tests/modeltests/validators/tests.py +++ b/tests/modeltests/validators/tests.py @@ -28,6 +28,9 @@ TEST_DATA = ( (validate_email, 'abc', ValidationError), (validate_email, 'a @x.cz', ValidationError), (validate_email, 'something@@somewhere.com', ValidationError), + # Quoted-string format (CR not allowed) + (validate_email, '"\\\011"@here.com', None), + (validate_email, '"\\\012"@here.com', ValidationError), (validate_slug, 'slug-ok', None), (validate_slug, 'longer-slug-still-ok', None),