diff options
| author | Artem Mezhenin | 2014-02-09 02:46:25 +0400 | 
|---|---|---|
| committer | Artem Mezhenin | 2014-02-09 02:46:25 +0400 | 
| commit | 35f4908e48cc18e94be239f8065c95e87b2fb007 (patch) | |
| tree | 709456861794df64535dc919fcf953529d49818c /rest_framework | |
| parent | 41eb313e1c18051614809e2040e6ac8584936962 (diff) | |
| download | django-rest-framework-35f4908e48cc18e94be239f8065c95e87b2fb007.tar.bz2 | |
issue #1386
* regex for matching URLs was rewritten
* added unittests
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/templatetags/rest_framework.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/test_templatetags.py | 38 | 
2 files changed, 38 insertions, 2 deletions
diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py index 7a70fd46..8a0e11ba 100644 --- a/rest_framework/templatetags/rest_framework.py +++ b/rest_framework/templatetags/rest_framework.py @@ -185,7 +185,7 @@ WRAPPING_PUNCTUATION = [('(', ')'), ('<', '>'), ('[', ']'), ('<', '>'),                          ('"', '"'), ("'", "'")]  word_split_re = re.compile(r'(\s+)')  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_url_2_re = re.compile(r'^\w[^@\[\]\:\/,]+\.(com|edu|gov|int|mil|net|org)(:\d{2,5})?(/(\w[^@\[\]\:\,]+)?)?$', re.IGNORECASE)  simple_email_re = re.compile(r'^\S+@\S+\.\S+$') diff --git a/rest_framework/tests/test_templatetags.py b/rest_framework/tests/test_templatetags.py index 609a9e08..0c2259b9 100644 --- a/rest_framework/tests/test_templatetags.py +++ b/rest_framework/tests/test_templatetags.py @@ -2,7 +2,7 @@  from __future__ import unicode_literals  from django.test import TestCase  from rest_framework.test import APIRequestFactory -from rest_framework.templatetags.rest_framework import add_query_param +from rest_framework.templatetags.rest_framework import add_query_param, urlize_quoted_links  factory = APIRequestFactory() @@ -17,3 +17,39 @@ class TemplateTagTests(TestCase):          json_url = add_query_param(request, "format", "json")          self.assertIn("q=%E6%9F%A5%E8%AF%A2", json_url)          self.assertIn("format=json", json_url) + + +class Issue1386Tests(TestCase): +    """ +    Covers #1386 +    """ + +    def test_issue_1386(self): +        """ +        Test function urlize_quoted_links with different args +        """ +        correct_urls = [ +            "asdf.com/zxvc", +            "asdf.net", +            "www.as_df.org", +            "as.d8f.ghj8.gov", +            "www.a-op.s.d.edu/asdf/dfff_908/", +            "cd8fr.com:80/hello", +            "cdfr.com:808/hello", +            "cdfr.com:8080/hello", +            "cdfr.com:44808/hello/asdf/", +        ] +        for i in correct_urls: +            res = urlize_quoted_links(i) +            self.assertGreater(len(res), len(i)) +            self.assertIn(i, res) + +        incorrect_urls = [ +            "mailto://asdf@fdf.com", +            "asdf://asdf.com", +            "asdf.netnet", +            "asdf:[/p]zxcv.com" # example from issue #1386 +        ] +        for i in incorrect_urls: +            res = urlize_quoted_links(i) +            self.assertEqual(i, res)
\ No newline at end of file  | 
