diff options
| author | Gabriel Hurley <gabriel@strikeawe.com> | 2012-11-03 13:06:57 -0700 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2012-11-17 15:51:10 +0100 |
| commit | dd740e2b2e2780cc5b4357f1cd9b62f830945ec4 (patch) | |
| tree | b462da9eb6f3d02cf69cc8de919aecd2f27c4138 /tests/regressiontests/urlpatterns_reverse | |
| parent | 0e3f7814d7106768e8eafcba0e74238fcdb90f9d (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.py | 12 |
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): """ |
