summaryrefslogtreecommitdiff
path: root/tests/regressiontests/urlpatterns_reverse
diff options
context:
space:
mode:
authorGabriel Hurley <gabriel@strikeawe.com>2012-11-03 13:06:57 -0700
committerJannis Leidel <jannis@leidel.info>2012-11-17 15:51:10 +0100
commitdd740e2b2e2780cc5b4357f1cd9b62f830945ec4 (patch)
treeb462da9eb6f3d02cf69cc8de919aecd2f27c4138 /tests/regressiontests/urlpatterns_reverse
parent0e3f7814d7106768e8eafcba0e74238fcdb90f9d (diff)
[1.5.x] Fixed #18210 -- Escaped special characters in reverse prefixes.
Ensured that special characters passed in to reverse via the prefix argument are properly escaped so that calls to django.utils.regex_helpers.normalize and/or string formatting operations don't result in exceptions. Thanks to toofishes for the error report. Backport of 90e530978d590a5bdcf75525aa03f844766018b8 from master.
Diffstat (limited to 'tests/regressiontests/urlpatterns_reverse')
-rw-r--r--tests/regressiontests/urlpatterns_reverse/tests.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py
index 234897d267..85f18db4c5 100644
--- a/tests/regressiontests/urlpatterns_reverse/tests.py
+++ b/tests/regressiontests/urlpatterns_reverse/tests.py
@@ -171,6 +171,18 @@ class URLPatternReverse(TestCase):
# Reversing None should raise an error, not return the last un-named view.
self.assertRaises(NoReverseMatch, reverse, None)
+ def test_prefix_braces(self):
+ self.assertEqual('/%7B%7Binvalid%7D%7D/includes/non_path_include/',
+ reverse('non_path_include', prefix='/{{invalid}}/'))
+
+ def test_prefix_parenthesis(self):
+ self.assertEqual('/bogus%29/includes/non_path_include/',
+ reverse('non_path_include', prefix='/bogus)/'))
+
+ def test_prefix_format_char(self):
+ self.assertEqual('/bump%2520map/includes/non_path_include/',
+ reverse('non_path_include', prefix='/bump%20map/'))
+
class ResolverTests(unittest.TestCase):
def test_resolver_repr(self):
"""