diff options
| author | Charlie Denton <charleswdenton@gmail.com> | 2016-06-13 13:09:54 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-06-13 08:09:54 -0400 |
| commit | f2c0eb19e961f5864573251e70bdcdecd0250aed (patch) | |
| tree | fd6aaa4878bebe72b1a56f2fdbc1fda9474a6b5b /tests/postgres_tests/test_json.py | |
| parent | 57eb17b8c7d106c9a3264aa35b8dabb179a1e17b (diff) | |
Fixed #26748 -- Allowed overriding JSONField's widget with an attribute.
Diffstat (limited to 'tests/postgres_tests/test_json.py')
| -rw-r--r-- | tests/postgres_tests/test_json.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/postgres_tests/test_json.py b/tests/postgres_tests/test_json.py index 11b6a349aa..f334118a1f 100644 --- a/tests/postgres_tests/test_json.py +++ b/tests/postgres_tests/test_json.py @@ -3,7 +3,7 @@ import unittest from django.core import exceptions, serializers from django.db import connection -from django.forms import CharField, Form +from django.forms import CharField, Form, widgets from django.test import TestCase from django.utils.html import escape @@ -291,3 +291,21 @@ class TestFormField(PostgreSQLTestCase): form = JsonForm({'name': 'xy', 'jfield': '{"foo"}'}) # Appears once in the textarea and once in the error message self.assertEqual(form.as_p().count(escape('{"foo"}')), 2) + + def test_widget(self): + """The default widget of a JSONField is a Textarea.""" + field = forms.JSONField() + self.assertIsInstance(field.widget, widgets.Textarea) + + def test_custom_widget_kwarg(self): + """The widget can be overridden with a kwarg.""" + field = forms.JSONField(widget=widgets.Input) + self.assertIsInstance(field.widget, widgets.Input) + + def test_custom_widget_attribute(self): + """The widget can be overridden with an attribute.""" + class CustomJSONField(forms.JSONField): + widget = widgets.Input + + field = CustomJSONField() + self.assertIsInstance(field.widget, widgets.Input) |
