diff options
| author | Alasdair Nicol <alasdair@thenicols.net> | 2016-09-19 21:18:41 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-09-19 21:01:09 -0400 |
| commit | 190cd0e49f967d2ec0b6c50a63f0d58d13319611 (patch) | |
| tree | ea42e7a9ab3a431f6ce5d99449e008a4faf7dd5f | |
| parent | 9c3f8643058958d591a68d33984db6f3e226b11f (diff) | |
[1.10.x] Fixed #27238 -- Disabled check_pattern_startswith_slash if settings.APPEND_SLASH=False.
Thanks strycore for the report and timgraham for suggesting the
solution.
Backport of 911d9f4ed1a39f945769b7198a419850378f9824 from master
| -rw-r--r-- | django/core/checks/urls.py | 4 | ||||
| -rw-r--r-- | docs/releases/1.10.2.txt | 3 | ||||
| -rw-r--r-- | tests/check_framework/test_urls.py | 10 |
3 files changed, 17 insertions, 0 deletions
diff --git a/django/core/checks/urls.py b/django/core/checks/urls.py index 8356fc2f00..c151c491dc 100644 --- a/django/core/checks/urls.py +++ b/django/core/checks/urls.py @@ -95,6 +95,10 @@ def check_pattern_startswith_slash(pattern): Check that the pattern does not begin with a forward slash. """ regex_pattern = pattern.regex.pattern + if not settings.APPEND_SLASH: + # Skip check as it can be useful to start a URL pattern with a slash + # when APPEND_SLASH=False. + return [] if regex_pattern.startswith('/') or regex_pattern.startswith('^/'): warning = Warning( "Your URL pattern {} has a regex beginning with a '/'. Remove this " diff --git a/docs/releases/1.10.2.txt b/docs/releases/1.10.2.txt index bc11980053..8c031d37f5 100644 --- a/docs/releases/1.10.2.txt +++ b/docs/releases/1.10.2.txt @@ -14,3 +14,6 @@ Bugfixes * Allowed combining ``contrib.postgres.search.SearchQuery`` with more than one ``&`` or ``|`` operators (:ticket:`27143`). + +* Disabled system check for URL patterns beginning with a '/' when + ``APPEND_SLASH=False`` (:ticket:`27238`). diff --git a/tests/check_framework/test_urls.py b/tests/check_framework/test_urls.py index 926d1947dd..3418af8ac0 100644 --- a/tests/check_framework/test_urls.py +++ b/tests/check_framework/test_urls.py @@ -55,6 +55,16 @@ class CheckUrlsTest(SimpleTestCase): self.assertIn(expected_msg, warning.msg) + @override_settings( + ROOT_URLCONF='check_framework.urls.beginning_with_slash', + APPEND_SLASH=False, + ) + def test_beginning_with_slash_append_slash(self): + # It can be useful to start a URL pattern with a slash when + # APPEND_SLASH=False (#27238). + result = check_url_config(None) + self.assertEqual(result, []) + @override_settings(ROOT_URLCONF='check_framework.urls.name_with_colon') def test_name_with_colon(self): result = check_url_config(None) |
