Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #20172 -- Ensured urlize supports IPv4/IPv6 addresses

Thanks Marc Aymerich for the report and the initial patch.
  • Loading branch information...
commit b474ffe63a3f99daeef2324a674f7ddfbb653c41 1 parent 2bcbca3
Claude Paroz claudep authored
Showing with 6 additions and 1 deletion.
  1. +1 −1  django/utils/html.py
  2. +5 −0 tests/defaultfilters/tests.py
2  django/utils/html.py
View
@@ -26,7 +26,7 @@
unencoded_ampersands_re = re.compile(r'&(?!(\w+|#\d+);)')
unquoted_percents_re = re.compile(r'%(?![0-9A-Fa-f]{2})')
word_split_re = re.compile(r'(\s+)')
-simple_url_re = re.compile(r'^https?://\w', re.IGNORECASE)
+simple_url_re = re.compile(r'^https?://\[?\w', re.IGNORECASE)
simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)$', re.IGNORECASE)
simple_email_re = re.compile(r'^\S+@\S+\.\S+$')
link_target_attribute_re = re.compile(r'(<a [^>]*?)target=[^\s>]+')
5 tests/defaultfilters/tests.py
View
@@ -314,6 +314,11 @@ def test_urlize(self):
self.assertEqual(urlize('see test[at[example.com'),
'see <a href="http://test[at[example.com" rel="nofollow">test[at[example.com</a>' )
+ # Check urlize works with IPv4/IPv6 addresses
+ self.assertEqual(urlize('http://192.168.0.15/api/9'),
+ '<a href="http://192.168.0.15/api/9" rel="nofollow">http://192.168.0.15/api/9</a>')
+ self.assertEqual(urlize('http://[2001:db8:cafe::2]/api/9'),
+ '<a href="http://[2001:db8:cafe::2]/api/9" rel="nofollow">http://[2001:db8:cafe::2]/api/9</a>')
def test_wordcount(self):
self.assertEqual(wordcount(''), 0)
Please sign in to comment.
Something went wrong with that request. Please try again.