Commit 90081646 authored by Claude Paroz's avatar Claude Paroz
Browse files

[py3] Re-decoded string after idna encoding

parent 66021033
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ class URLValidator(RegexValidator):
                value = smart_text(value)
                scheme, netloc, path, query, fragment = urlsplit(value)
                try:
                    netloc = netloc.encode('idna') # IDN -> ACE
                    netloc = netloc.encode('idna').decode('ascii') # IDN -> ACE
                except UnicodeError: # invalid domain part
                    raise e
                url = urlunsplit((scheme, netloc, path, query, fragment))
@@ -84,7 +84,7 @@ class EmailValidator(RegexValidator):
            if value and '@' in value:
                parts = value.split('@')
                try:
                    parts[-1] = parts[-1].encode('idna')
                    parts[-1] = parts[-1].encode('idna').decode('ascii')
                except UnicodeError:
                    raise e
                super(EmailValidator, self).__call__('@'.join(parts))
+2 −2
Original line number Diff line number Diff line
@@ -143,7 +143,7 @@ def smart_urlquote(url):
    # Handle IDN before quoting.
    scheme, netloc, path, query, fragment = urlsplit(url)
    try:
        netloc = netloc.encode('idna') # IDN -> ACE
        netloc = netloc.encode('idna').decode('ascii') # IDN -> ACE
    except UnicodeError: # invalid domain part
        pass
    else:
@@ -206,7 +206,7 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
            elif not ':' in middle and simple_email_re.match(middle):
                local, domain = middle.rsplit('@', 1)
                try:
                    domain = domain.encode('idna')
                    domain = domain.encode('idna').decode('ascii')
                except UnicodeError:
                    continue
                url = 'mailto:%s@%s' % (local, domain)