mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #15667 -- Added template-based widget rendering.
Thanks Carl Meyer and Tim Graham for contributing to the patch.
This commit is contained in:
parent
51cde873d9
commit
b52c73008a
98 changed files with 1334 additions and 874 deletions
|
@ -1,9 +1,27 @@
|
|||
from django.forms.renderers import DjangoTemplates, Jinja2
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
try:
|
||||
import jinja2
|
||||
except ImportError:
|
||||
jinja2 = None
|
||||
|
||||
|
||||
class WidgetTest(SimpleTestCase):
|
||||
beatles = (('J', 'John'), ('P', 'Paul'), ('G', 'George'), ('R', 'Ringo'))
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.django_renderer = DjangoTemplates()
|
||||
cls.jinja2_renderer = Jinja2() if jinja2 else None
|
||||
cls.renderers = [cls.django_renderer] + ([cls.jinja2_renderer] if cls.jinja2_renderer else [])
|
||||
super(WidgetTest, cls).setUpClass()
|
||||
|
||||
def check_html(self, widget, name, value, html='', attrs=None, **kwargs):
|
||||
output = widget.render(name, value, attrs=attrs, **kwargs)
|
||||
if self.jinja2_renderer:
|
||||
output = widget.render(name, value, attrs=attrs, renderer=self.jinja2_renderer, **kwargs)
|
||||
# Django escapes quotes with '"' while Jinja2 uses '"'.
|
||||
self.assertHTMLEqual(output.replace('"', '"'), html)
|
||||
|
||||
output = widget.render(name, value, attrs=attrs, renderer=self.django_renderer, **kwargs)
|
||||
self.assertHTMLEqual(output, html)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue