[1.2.X] Fixed #14941 -- Stop raising ValidationError in form fields that use the URLValidator and get a IDN domain passed. Thanks, Claude Paroz.

Backport from trunk (r15504).

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15511 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2011-02-12 19:24:34 +00:00
parent 89c03dcbf3
commit 748110cb94
2 changed files with 3 additions and 1 deletions

View File

@ -81,7 +81,7 @@ class URLValidator(RegexValidator):
"User-Agent": self.user_agent,
}
try:
req = urllib2.Request(url, None, headers)
req = urllib2.Request(url.encode('utf-8'), None, headers)
u = urllib2.urlopen(req)
except ValueError:
raise ValidationError(_(u'Enter a valid URL.'), code='invalid')

View File

@ -567,6 +567,8 @@ class FieldsTests(TestCase):
f.clean('http://google.com/we-love-microsoft.html') # good domain, bad page
except ValidationError, e:
self.assertEqual("[u'This URL appears to be a broken link.']", str(e))
# UTF-8 char in path
self.assertEqual(u'http://de.wikipedia.org/wiki/T\xfcr', f.clean(u'http://de.wikipedia.org/wiki/T\xfcr'))
def test_urlfield_4(self):
f = URLField(verify_exists=True, required=False)