[1.11.x] Fixed #27781 -- Made simplify_regex() remove outstanding '?' characters.
Regression inf0ef0c49e9
. Backport ofc37ec5a659
from master
This commit is contained in:
parent
7dda48bf18
commit
092f09fcc1
|
@ -436,7 +436,7 @@ def simplify_regex(pattern):
|
||||||
pattern = replace_named_groups(pattern)
|
pattern = replace_named_groups(pattern)
|
||||||
pattern = replace_unnamed_groups(pattern)
|
pattern = replace_unnamed_groups(pattern)
|
||||||
# clean up any outstanding regex-y characters.
|
# clean up any outstanding regex-y characters.
|
||||||
pattern = pattern.replace('^', '').replace('$', '')
|
pattern = pattern.replace('^', '').replace('$', '').replace('?', '')
|
||||||
if not pattern.startswith('/'):
|
if not pattern.startswith('/'):
|
||||||
pattern = '/' + pattern
|
pattern = '/' + pattern
|
||||||
return pattern
|
return pattern
|
||||||
|
|
|
@ -340,6 +340,7 @@ class AdminDocViewFunctionsTests(SimpleTestCase):
|
||||||
(r'^(?P<a>(x|y))/b/(?P<c>\w+)$', '/<a>/b/<c>'),
|
(r'^(?P<a>(x|y))/b/(?P<c>\w+)$', '/<a>/b/<c>'),
|
||||||
(r'^(?P<a>(x|y))/b/(?P<c>\w+)ab', '/<a>/b/<c>ab'),
|
(r'^(?P<a>(x|y))/b/(?P<c>\w+)ab', '/<a>/b/<c>ab'),
|
||||||
(r'^(?P<a>(x|y)(\(|\)))/b/(?P<c>\w+)ab', '/<a>/b/<c>ab'),
|
(r'^(?P<a>(x|y)(\(|\)))/b/(?P<c>\w+)ab', '/<a>/b/<c>ab'),
|
||||||
|
(r'^a/?$', '/a/'),
|
||||||
)
|
)
|
||||||
for pattern, output in tests:
|
for pattern, output in tests:
|
||||||
self.assertEqual(simplify_regex(pattern), output)
|
self.assertEqual(simplify_regex(pattern), output)
|
||||||
|
|
Loading…
Reference in New Issue