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

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15504 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2011-02-12 19:12:05 +00:00
parent bc5c2537ae
commit ba1876cef2
2 changed files with 3 additions and 0 deletions

View File

@ -84,6 +84,7 @@ class URLValidator(RegexValidator):
"Connection": "close", "Connection": "close",
"User-Agent": self.user_agent, "User-Agent": self.user_agent,
} }
url = url.encode('utf-8')
broken_error = ValidationError( broken_error = ValidationError(
_(u'This URL appears to be a broken link.'), code='invalid_link') _(u'This URL appears to be a broken link.'), code='invalid_link')
try: try:

View File

@ -571,6 +571,8 @@ class FieldsTests(TestCase):
f.clean('http://google.com/we-love-microsoft.html') # good domain, bad page f.clean('http://google.com/we-love-microsoft.html') # good domain, bad page
except ValidationError, e: except ValidationError, e:
self.assertEqual("[u'This URL appears to be a broken link.']", str(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): def test_urlfield_4(self):
f = URLField(verify_exists=True, required=False) f = URLField(verify_exists=True, required=False)