Commit f2975c02 authored by Alasdair Nicol's avatar Alasdair Nicol Committed by Tim Graham
Browse files

Refs #23813 -- Moved URLconfs into module and tidied docstrings.

parent 392f6484
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ def check_url_config(app_configs, **kwargs):

def check_resolver(resolver):
    """
    Recursively check the resolver
    Recursively check the resolver.
    """
    from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
    warnings = []
@@ -31,7 +31,7 @@ def check_resolver(resolver):

def describe_pattern(pattern):
    """
    Formats the URL pattern for display in warning messages
    Format the URL pattern for display in warning messages.
    """
    description = "'{}'".format(pattern.regex.pattern)
    if getattr(pattern, 'name', False):
@@ -41,7 +41,7 @@ def describe_pattern(pattern):

def check_include_trailing_dollar(pattern):
    """
    Checks that include is not used with a regex ending with a dollar.
    Check that include is not used with a regex ending with a dollar.
    """
    regex_pattern = pattern.regex.pattern
    if regex_pattern.endswith('$') and not regex_pattern.endswith('\$'):
@@ -58,7 +58,7 @@ def check_include_trailing_dollar(pattern):

def check_pattern_startswith_slash(pattern):
    """
    Checks that the pattern does not begin with a forward slash
    Check that the pattern does not begin with a forward slash.
    """
    regex_pattern = pattern.regex.pattern
    if regex_pattern.startswith('/') or regex_pattern.startswith('^/'):
@@ -74,7 +74,7 @@ def check_pattern_startswith_slash(pattern):

def check_pattern_name(pattern):
    """
    Checks that the pattern name does not contain a colon
    Check that the pattern name does not contain a colon.
    """
    if pattern.name is not None and ":" in pattern.name:
        warning = Warning(
+7 −7
Original line number Diff line number Diff line
@@ -4,12 +4,12 @@ from django.test.utils import override_settings


class CheckUrlsTest(SimpleTestCase):
    @override_settings(ROOT_URLCONF='check_framework.urls_no_warnings')
    def test_include_no_warnings(self):
    @override_settings(ROOT_URLCONF='check_framework.urls.no_warnings')
    def test_no_warnings(self):
        result = check_url_config(None)
        self.assertEqual(result, [])

    @override_settings(ROOT_URLCONF='check_framework.urls_include')
    @override_settings(ROOT_URLCONF='check_framework.urls.include_with_dollar')
    def test_include_with_dollar(self):
        result = check_url_config(None)
        self.assertEqual(len(result), 1)
@@ -18,8 +18,8 @@ class CheckUrlsTest(SimpleTestCase):
        expected_msg = "Your URL pattern '^include-with-dollar$' uses include with a regex ending with a '$'."
        self.assertIn(expected_msg, warning.msg)

    @override_settings(ROOT_URLCONF='check_framework.urls_slash')
    def test_url_beginning_with_slash(self):
    @override_settings(ROOT_URLCONF='check_framework.urls.beginning_with_slash')
    def test_beginning_with_slash(self):
        result = check_url_config(None)
        self.assertEqual(len(result), 1)
        warning = result[0]
@@ -27,8 +27,8 @@ class CheckUrlsTest(SimpleTestCase):
        expected_msg = "Your URL pattern '/starting-with-slash/$' has a regex beginning with a '/'"
        self.assertIn(expected_msg, warning.msg)

    @override_settings(ROOT_URLCONF='check_framework.urls_name')
    def test_url_pattern_name_with_colon(self):
    @override_settings(ROOT_URLCONF='check_framework.urls.name_with_colon')
    def test_name_with_colon(self):
        result = check_url_config(None)
        self.assertEqual(len(result), 1)
        warning = result[0]
+0 −0

Empty file added.

+7 −0
Original line number Diff line number Diff line
from django.conf.urls import include, url
from django.http import HttpResponse


def view(request):
    return HttpResponse('')


urlpatterns = [
    url('^', include([
        url(r'/starting-with-slash/$', view),
        url(r'/starting-with-slash/$', lambda x: x),
    ])),
]
Loading