From 092f09fcc184cf611d5a144172c8b49c25c86577 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Fri, 27 Jan 2017 00:36:34 +0100 Subject: [PATCH] [1.11.x] Fixed #27781 -- Made simplify_regex() remove outstanding '?' characters. Regression in f0ef0c49e9284f262fbc63e8a497699ca4a248fe. Backport of c37ec5a6595f963a04fae1b17858225c2b3d08c4 from master --- django/contrib/admindocs/views.py | 2 +- tests/admin_docs/test_views.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py index e29f9a3e83..5c6701aef2 100644 --- a/django/contrib/admindocs/views.py +++ b/django/contrib/admindocs/views.py @@ -436,7 +436,7 @@ def simplify_regex(pattern): pattern = replace_named_groups(pattern) pattern = replace_unnamed_groups(pattern) # clean up any outstanding regex-y characters. - pattern = pattern.replace('^', '').replace('$', '') + pattern = pattern.replace('^', '').replace('$', '').replace('?', '') if not pattern.startswith('/'): pattern = '/' + pattern return pattern diff --git a/tests/admin_docs/test_views.py b/tests/admin_docs/test_views.py index b48147fc85..bd483007c7 100644 --- a/tests/admin_docs/test_views.py +++ b/tests/admin_docs/test_views.py @@ -340,6 +340,7 @@ class AdminDocViewFunctionsTests(SimpleTestCase): (r'^(?P(x|y))/b/(?P\w+)$', '//b/'), (r'^(?P(x|y))/b/(?P\w+)ab', '//b/ab'), (r'^(?P(x|y)(\(|\)))/b/(?P\w+)ab', '//b/ab'), + (r'^a/?$', '/a/'), ) for pattern, output in tests: self.assertEqual(simplify_regex(pattern), output)