mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
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.
This commit is contained in:
parent
a53541852d
commit
2133f3157e
19 changed files with 180 additions and 22 deletions
1
tests/template_tests/jinja2/template_tests/using.html
Normal file
1
tests/template_tests/jinja2/template_tests/using.html
Normal file
|
@ -0,0 +1 @@
|
|||
Jinja2
|
1
tests/template_tests/templates/template_tests/using.html
Normal file
1
tests/template_tests/templates/template_tests/using.html
Normal file
|
@ -0,0 +1 @@
|
|||
DTL
|
|
@ -11,6 +11,7 @@ from django.template import Context, engines
|
|||
from django.template.response import (TemplateResponse, SimpleTemplateResponse,
|
||||
ContentNotRenderedError)
|
||||
from django.test import ignore_warnings, override_settings
|
||||
from django.test.utils import require_jinja2
|
||||
from django.utils._os import upath
|
||||
from django.utils.deprecation import RemovedInDjango20Warning
|
||||
|
||||
|
@ -133,6 +134,15 @@ class SimpleTemplateResponseTest(SimpleTestCase):
|
|||
self.assertEqual(response['content-type'], 'application/json')
|
||||
self.assertEqual(response.status_code, 504)
|
||||
|
||||
@require_jinja2
|
||||
def test_using(self):
|
||||
response = SimpleTemplateResponse('template_tests/using.html').render()
|
||||
self.assertEqual(response.content, b'DTL\n')
|
||||
response = SimpleTemplateResponse('template_tests/using.html', using='django').render()
|
||||
self.assertEqual(response.content, b'DTL\n')
|
||||
response = SimpleTemplateResponse('template_tests/using.html', using='jinja2').render()
|
||||
self.assertEqual(response.content, b'Jinja2\n')
|
||||
|
||||
def test_post_callbacks(self):
|
||||
"Rendering a template response triggers the post-render callbacks"
|
||||
post = []
|
||||
|
@ -260,6 +270,16 @@ class TemplateResponseTest(SimpleTestCase):
|
|||
self.assertEqual(response['content-type'], 'application/json')
|
||||
self.assertEqual(response.status_code, 504)
|
||||
|
||||
@require_jinja2
|
||||
def test_using(self):
|
||||
request = self.factory.get('/')
|
||||
response = TemplateResponse(request, 'template_tests/using.html').render()
|
||||
self.assertEqual(response.content, b'DTL\n')
|
||||
response = TemplateResponse(request, 'template_tests/using.html', using='django').render()
|
||||
self.assertEqual(response.content, b'DTL\n')
|
||||
response = TemplateResponse(request, 'template_tests/using.html', using='jinja2').render()
|
||||
self.assertEqual(response.content, b'Jinja2\n')
|
||||
|
||||
@ignore_warnings(category=RemovedInDjango20Warning)
|
||||
def test_custom_app(self):
|
||||
self._response('{{ foo }}', current_app="foobar")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue