summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-02-12 19:24:34 +0000
committerJannis Leidel <jannis@leidel.info>2011-02-12 19:24:34 +0000
commit748110cb94352fc0a796dec0d559f4c6a5a797c2 (patch)
treeeaa89d5ec78a4458a6b5712982b91d1188aa58b0
parent89c03dcbf3dfc789ed258e697ac87de3bcc2133c (diff)
[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
-rw-r--r--django/core/validators.py2
-rw-r--r--tests/regressiontests/forms/tests/fields.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/django/core/validators.py b/django/core/validators.py
index dad0a7924f..27a42c4cda 100644
--- a/django/core/validators.py
+++ b/django/core/validators.py
@@ -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')
diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py
index f198e6c796..a9272bed2a 100644
--- a/tests/regressiontests/forms/tests/fields.py
+++ b/tests/regressiontests/forms/tests/fields.py
@@ -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)