summaryrefslogtreecommitdiff
path: root/tests/admin_docs
diff options
context:
space:
mode:
authorNick Pope <nick@nickpope.me.uk>2021-07-08 00:19:35 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-09-22 11:59:59 +0200
commit448d974d9646b96806ef07a9ceeceb96e4bac645 (patch)
treea527b280cdbc15c769a335c72ca057a3dece9651 /tests/admin_docs
parent85540da9303287cc13fdce95971a23c9799226f3 (diff)
Fixed #32499 -- Escaped additional metacharacters in simplify_regex().
Diffstat (limited to 'tests/admin_docs')
-rw-r--r--tests/admin_docs/test_views.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/admin_docs/test_views.py b/tests/admin_docs/test_views.py
index bf11ae5be5..5355382dfa 100644
--- a/tests/admin_docs/test_views.py
+++ b/tests/admin_docs/test_views.py
@@ -407,8 +407,28 @@ class AdminDocViewFunctionsTests(SimpleTestCase):
(r'a?', '/a'),
(r'a??', '/a'),
(r'a???', '/a'),
+ (r'a*', '/a'),
+ (r'a**', '/a'),
+ (r'a***', '/a'),
+ (r'a+', '/a'),
+ (r'a++', '/a'),
+ (r'a+++', '/a'),
+ (r'\Aa', '/a'),
+ (r'\A\Aa', '/a'),
+ (r'\A\A\Aa', '/a'),
+ (r'a\Z', '/a'),
+ (r'a\Z\Z', '/a'),
+ (r'a\Z\Z\Z', '/a'),
+ (r'\ba', '/a'),
+ (r'\b\ba', '/a'),
+ (r'\b\b\ba', '/a'),
+ (r'a\B', '/a'),
+ (r'a\B\B', '/a'),
+ (r'a\B\B\B', '/a'),
# Multiple mixed metacharacters.
(r'^a/?$', '/a/'),
+ (r'\Aa\Z', '/a'),
+ (r'\ba\B', '/a'),
# Escaped single metacharacters.
(r'\^a', r'/^a'),
(r'\\^a', r'/\\a'),
@@ -425,6 +445,26 @@ class AdminDocViewFunctionsTests(SimpleTestCase):
(r'a\\\?', r'/a\\?'),
(r'a\\\\?', r'/a\\\\'),
(r'a\\\\\?', r'/a\\\\?'),
+ (r'a\*', r'/a*'),
+ (r'a\\*', r'/a\\'),
+ (r'a\\\*', r'/a\\*'),
+ (r'a\\\\*', r'/a\\\\'),
+ (r'a\\\\\*', r'/a\\\\*'),
+ (r'a\+', r'/a+'),
+ (r'a\\+', r'/a\\'),
+ (r'a\\\+', r'/a\\+'),
+ (r'a\\\\+', r'/a\\\\'),
+ (r'a\\\\\+', r'/a\\\\+'),
+ (r'\\Aa', r'/\Aa'),
+ (r'\\\Aa', r'/\\a'),
+ (r'\\\\Aa', r'/\\\Aa'),
+ (r'\\\\\Aa', r'/\\\\a'),
+ (r'\\\\\\Aa', r'/\\\\\Aa'),
+ (r'a\\Z', r'/a\Z'),
+ (r'a\\\Z', r'/a\\'),
+ (r'a\\\\Z', r'/a\\\Z'),
+ (r'a\\\\\Z', r'/a\\\\'),
+ (r'a\\\\\\Z', r'/a\\\\\Z'),
# Escaped mixed metacharacters.
(r'^a\?$', r'/a?'),
(r'^a\\?$', r'/a\\'),
@@ -437,6 +477,9 @@ class AdminDocViewFunctionsTests(SimpleTestCase):
(r'^a\\\?\\\$', r'/a\\?\\$'),
(r'^a\\\\?\\\\$', r'/a\\\\\\\\'),
(r'^a\\\\\?\\\\\$', r'/a\\\\?\\\\$'),
+ # Complex examples with metacharacters and (un)named groups.
+ (r'^\b(?P<slug>\w+)\B/(\w+)?', '/<slug>/<var>'),
+ (r'^\A(?P<slug>\w+)\Z', '/<slug>'),
)
for pattern, output in tests:
with self.subTest(pattern=pattern):