mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #19392 -- Improved error for old-style url tags with dashes.
Thanks dloewenherz for the report.
This commit is contained in:
		| @@ -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): | ||||||
|         """ |         """ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user