summaryrefslogtreecommitdiff
path: root/tests/forms_tests
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2017-06-02 06:46:43 -0700
committerTim Graham <timograham@gmail.com>2017-06-02 09:46:43 -0400
commit29a518006f7f96186483fa50e249e1c3f21728d5 (patch)
tree71140a36ff1db49f6edf95c0593c6179b0248a56 /tests/forms_tests
parent00093daec9cc61d8af7fcebdbe58e263bea935a3 (diff)
Fixed #28265 -- Prevented renderer warning on Widget.render() with **kwargs.
Diffstat (limited to 'tests/forms_tests')
-rw-r--r--tests/forms_tests/widget_tests/test_render_deprecation.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/forms_tests/widget_tests/test_render_deprecation.py b/tests/forms_tests/widget_tests/test_render_deprecation.py
new file mode 100644
index 0000000000..4059f043e3
--- /dev/null
+++ b/tests/forms_tests/widget_tests/test_render_deprecation.py
@@ -0,0 +1,35 @@
+from django import forms
+from django.test import SimpleTestCase
+from django.utils.deprecation import RemovedInDjango21Warning
+
+
+class RenderDeprecationTests(SimpleTestCase):
+ def test_custom_widget_renderer_warning(self):
+ class CustomWidget1(forms.TextInput):
+ def render(self, name, value, attrs=None, renderer=None):
+ return super().render(name, value, attrs, renderer)
+
+ class CustomWidget2(forms.TextInput):
+ def render(self, *args, **kwargs):
+ return super().render(*args, **kwargs)
+
+ class CustomWidget3(forms.TextInput):
+ def render(self, name, value, attrs=None):
+ return super().render(name, value, attrs)
+
+ class MyForm(forms.Form):
+ foo = forms.CharField(widget=CustomWidget1)
+ bar = forms.CharField(widget=CustomWidget2)
+ baz = forms.CharField(widget=CustomWidget3)
+
+ form = MyForm()
+ str(form['foo']) # No warning.
+ str(form['bar']) # No warning.
+ msg = (
+ "Add the `renderer` argument to the render() method of <class "
+ "'forms_tests.widget_tests.test_render_deprecation"
+ ".RenderDeprecationTests.test_custom_widget_renderer_warning.<locals>"
+ ".CustomWidget3'>. It will be mandatory in Django 2.1."
+ )
+ with self.assertRaisesMessage(RemovedInDjango21Warning, msg):
+ str(form['baz'])