Change exception type to reduce confusion.

TemplateSyntaxError is expected at compile time, not at run time.

Refs #19280.
This commit is contained in:
Aymeric Augustin 2012-11-25 19:51:42 +01:00
parent f89901dc05
commit 7644800070
2 changed files with 4 additions and 4 deletions

View File

@ -399,8 +399,8 @@ class URLNode(Node):
view_name = self.view_name.resolve(context) view_name = self.view_name.resolve(context)
if not view_name: if not view_name:
raise TemplateSyntaxError("'url' takes requires a non-empty first" raise NoReverseMatch("'url' requires a non-empty first argument. "
" argument. The syntax changed in Django 1.5, see the docs.") "The syntax changed in Django 1.5, see the docs.")
# Try to look up the URL twice: once given the view name, and again # Try to look up the URL twice: once given the view name, and again
# relative to what we guess is the "main" app. If they both fail, # relative to what we guess is the "main" app. If they both fail,

View File

@ -20,7 +20,7 @@ except ImportError: # Python 2
from django import template from django import template
from django.template import (base as template_base, Context, RequestContext, from django.template import (base as template_base, Context, RequestContext,
Template, TemplateSyntaxError) Template)
from django.core import urlresolvers from django.core import urlresolvers
from django.template import loader from django.template import loader
from django.template.loaders import app_directories, filesystem, cached from django.template.loaders import app_directories, filesystem, cached
@ -369,7 +369,7 @@ class Templates(TestCase):
# 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()
with self.assertRaisesRegexp(TemplateSyntaxError, with self.assertRaisesRegexp(urlresolvers.NoReverseMatch,
"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)