[1.5.x] Fixed #19392 -- Improved error for old-style url tags with dashes.
Thanks dloewenherz for the report.
Backport of 4951932
from master.
This commit is contained in:
parent
fce779475e
commit
d6bad2e9ea
|
@ -1262,7 +1262,12 @@ def url(parser, token):
|
||||||
if len(bits) < 2:
|
if len(bits) < 2:
|
||||||
raise TemplateSyntaxError("'%s' takes at least one argument"
|
raise TemplateSyntaxError("'%s' takes at least one argument"
|
||||||
" (path to a view)" % bits[0])
|
" (path to a view)" % bits[0])
|
||||||
viewname = parser.compile_filter(bits[1])
|
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 = []
|
args = []
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
asvar = None
|
asvar = None
|
||||||
|
|
|
@ -366,7 +366,7 @@ class Templates(TestCase):
|
||||||
with self.assertRaises(urlresolvers.NoReverseMatch):
|
with self.assertRaises(urlresolvers.NoReverseMatch):
|
||||||
t.render(c)
|
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
|
# Regression test for #19280
|
||||||
t = Template('{% url path.to.view %}') # not quoted = old syntax
|
t = Template('{% url path.to.view %}') # not quoted = old syntax
|
||||||
c = Context()
|
c = Context()
|
||||||
|
@ -374,6 +374,12 @@ class Templates(TestCase):
|
||||||
"The syntax changed in Django 1.5, see the docs."):
|
"The syntax changed in Django 1.5, see the docs."):
|
||||||
t.render(c)
|
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)
|
@override_settings(DEBUG=True, TEMPLATE_DEBUG=True)
|
||||||
def test_no_wrapped_exception(self):
|
def test_no_wrapped_exception(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue