summaryrefslogtreecommitdiff
path: root/tests/forms_tests/widget_tests/base.py
diff options
context:
space:
mode:
authorPreston Timmons <prestontimmons@gmail.com>2016-12-27 17:00:56 -0500
committerTim Graham <timograham@gmail.com>2016-12-27 17:50:10 -0500
commitb52c73008a9d67e9ddbb841872dc15cdd3d6ee01 (patch)
treeb58a2d18242db5234b18678116e07e6f6bbc7cb3 /tests/forms_tests/widget_tests/base.py
parent51cde873d9fc8e4540f4efecbd39cfe8e770be38 (diff)
Fixed #15667 -- Added template-based widget rendering.
Thanks Carl Meyer and Tim Graham for contributing to the patch.
Diffstat (limited to 'tests/forms_tests/widget_tests/base.py')
-rw-r--r--tests/forms_tests/widget_tests/base.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/forms_tests/widget_tests/base.py b/tests/forms_tests/widget_tests/base.py
index 3127cb85f2..dbbea25d7a 100644
--- a/tests/forms_tests/widget_tests/base.py
+++ b/tests/forms_tests/widget_tests/base.py
@@ -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 '&quot;' while Jinja2 uses '&#34;'.
+ self.assertHTMLEqual(output.replace('&#34;', '&quot;'), html)
+
+ output = widget.render(name, value, attrs=attrs, renderer=self.django_renderer, **kwargs)
self.assertHTMLEqual(output, html)