Commit 16a842b3 authored by Tim Graham's avatar Tim Graham
Browse files

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

parent 995d09ea
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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',