From 2133f3157eff853329bafb7fda74c3c8fb4eae42 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 26 Jan 2015 21:57:10 +0100 Subject: Fixed #24168 -- Allowed selecting a template engine in a few APIs. Specifically in rendering shortcuts, template responses, and class-based views that return template responses. Also added a test for render_to_response(status=...) which was missing from fdbfc980. Thanks Tim and Carl for the review. --- tests/generic_views/jinja2/generic_views/using.html | 1 + tests/generic_views/templates/generic_views/using.html | 1 + tests/generic_views/test_base.py | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 tests/generic_views/jinja2/generic_views/using.html create mode 100644 tests/generic_views/templates/generic_views/using.html (limited to 'tests/generic_views') diff --git a/tests/generic_views/jinja2/generic_views/using.html b/tests/generic_views/jinja2/generic_views/using.html new file mode 100644 index 0000000000..8ce973e958 --- /dev/null +++ b/tests/generic_views/jinja2/generic_views/using.html @@ -0,0 +1 @@ +Jinja2 diff --git a/tests/generic_views/templates/generic_views/using.html b/tests/generic_views/templates/generic_views/using.html new file mode 100644 index 0000000000..65bcbf65a4 --- /dev/null +++ b/tests/generic_views/templates/generic_views/using.html @@ -0,0 +1 @@ +DTL diff --git a/tests/generic_views/test_base.py b/tests/generic_views/test_base.py index 47518fdd92..f297b2e91b 100644 --- a/tests/generic_views/test_base.py +++ b/tests/generic_views/test_base.py @@ -7,6 +7,7 @@ from django.core.exceptions import ImproperlyConfigured from django.core.urlresolvers import resolve from django.http import HttpResponse from django.test import TestCase, RequestFactory, override_settings +from django.test.utils import require_jinja2 from django.views.generic import View, TemplateView, RedirectView from . import views @@ -278,10 +279,23 @@ class TemplateViewTest(TestCase): def test_template_name_required(self): """ - A template view must provide a template name + A template view must provide a template name. """ self.assertRaises(ImproperlyConfigured, self.client.get, '/template/no_template/') + @require_jinja2 + def test_template_engine(self): + """ + A template view may provide a template engine. + """ + request = self.rf.get('/using/') + view = TemplateView.as_view(template_name='generic_views/using.html') + self.assertEqual(view(request).render().content, b'DTL\n') + view = TemplateView.as_view(template_name='generic_views/using.html', template_engine='django') + self.assertEqual(view(request).render().content, b'DTL\n') + view = TemplateView.as_view(template_name='generic_views/using.html', template_engine='jinja2') + self.assertEqual(view(request).render().content, b'Jinja2\n') + def test_template_params(self): """ A generic template view passes kwargs as context. -- cgit v1.3