Commit 49519328 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Fixed #19392 -- Improved error for old-style url tags with dashes.

Thanks dloewenherz for the report.
parent 8248d140
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1262,7 +1262,12 @@ def url(parser, token):
    if len(bits) < 2:
        raise TemplateSyntaxError("'%s' takes at least one argument"
                                  " (path to a view)" % bits[0])
    try:
        viewname = parser.compile_filter(bits[1])
    except TemplateSyntaxError as exc:
        exc.args = (exc.args[0] + ". "
                "The syntax of 'url' changed in Django 1.5, see the docs."),
        raise
    args = []
    kwargs = {}
    asvar = None
+7 −1
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ class Templates(TestCase):
        with self.assertRaises(urlresolvers.NoReverseMatch):
            t.render(c)

    def test_url_explicit_exception_for_old_syntax(self):
    def test_url_explicit_exception_for_old_syntax_at_run_time(self):
        # Regression test for #19280
        t = Template('{% url path.to.view %}')      # not quoted = old syntax
        c = Context()
@@ -374,6 +374,12 @@ class Templates(TestCase):
                "The syntax changed in Django 1.5, see the docs."):
            t.render(c)

    def test_url_explicit_exception_for_old_syntax_at_compile_time(self):
        # Regression test for #19392
        with self.assertRaisesRegexp(template.TemplateSyntaxError,
                "The syntax of 'url' changed in Django 1.5, see the docs."):
            t = Template('{% url my-view %}')      # not a variable = old syntax

    @override_settings(DEBUG=True, TEMPLATE_DEBUG=True)
    def test_no_wrapped_exception(self):
        """