Browse Source

Refs #26621 -- Added tests for admindocs.views.simplify_regex().

Tim Graham 8 years ago
parent
commit
16a842b379
2 changed files with 13 additions and 4 deletions
  1. 3 3
      django/contrib/admindocs/views.py
  2. 10 1
      tests/admin_docs/tests.py

+ 3 - 3
django/contrib/admindocs/views.py

@@ -394,9 +394,9 @@ non_named_group_matcher = re.compile(r'\(.*?\)')
 
 def simplify_regex(pattern):
     """
-    Clean up urlpattern regexes into something somewhat readable by Mere Humans:
-    turns something like "^(?P<sport_slug>\w+)/athletes/(?P<athlete_slug>\w+)/$"
-    into "<sport_slug>/athletes/<athlete_slug>/"
+    Clean up urlpattern regexes into something more readable by humans. For
+    example, turn "^(?P<sport_slug>\w+)/athletes/(?P<athlete_slug>\w+)/$"
+    into "/<sport_slug>/athletes/<athlete_slug>/".
     """
     # handle named groups first
     pattern = named_group_matcher.sub(lambda m: m.group(1), pattern)

+ 10 - 1
tests/admin_docs/tests.py

@@ -3,7 +3,7 @@ import unittest
 
 from django.conf import settings
 from django.contrib.admindocs import utils
-from django.contrib.admindocs.views import get_return_data_type
+from django.contrib.admindocs.views import get_return_data_type, simplify_regex
 from django.contrib.auth.models import User
 from django.contrib.sites.models import Site
 from django.test import TestCase, modify_settings, override_settings
@@ -123,6 +123,15 @@ class AdminDocViewTests(TestDataMixin, AdminDocsTestCase):
         finally:
             utils.docutils_is_available = True
 
+    def test_simplify_regex(self):
+        tests = (
+            ('^a', '/a'),
+            ('^(?P<a>\w+)/b/(?P<c>\w+)/$', '/<a>/b/<c>/'),
+            ('^(?P<a>\w+)/b/(?P<c>\w+)$', '/<a>/b/<c>'),
+        )
+        for pattern, output in tests:
+            self.assertEqual(simplify_regex(pattern), output)
+
 
 @override_settings(TEMPLATES=[{
     'NAME': 'ONE',