File: test_render_deprecation.py

package info (click to toggle)
python-django 1%3A1.11.29-1~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 47,428 kB
  • sloc: python: 220,776; javascript: 13,523; makefile: 209; xml: 201; sh: 64
file content (30 lines) | stat: -rw-r--r-- 1,260 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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(CustomWidget1, self).render(name, value, attrs, renderer)

        class CustomWidget2(forms.TextInput):
            def render(self, *args, **kwargs):
                return super(CustomWidget2, self).render(*args, **kwargs)

        class CustomWidget3(forms.TextInput):
            def render(self, name, value, attrs=None):
                return super(CustomWidget3, self).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 "
        with self.assertRaisesMessage(RemovedInDjango21Warning, msg):
            str(form['baz'])