summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/forms')
-rw-r--r--tests/regressiontests/forms/tests/fields.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py
index 0f9e91a55e..7dd3a27dc1 100644
--- a/tests/regressiontests/forms/tests/fields.py
+++ b/tests/regressiontests/forms/tests/fields.py
@@ -136,6 +136,23 @@ class FieldsTests(SimpleTestCase):
self.assertEqual(f.max_length, None)
self.assertEqual(f.min_length, 10)
+ def test_charfield_widget_attrs(self):
+ """
+ Ensure that CharField.widget_attrs() always returns a dictionary.
+ Refs #15912
+ """
+ # Return an empty dictionary if max_length is None
+ f = CharField()
+ self.assertEqual(f.widget_attrs(TextInput()), {})
+
+ # Or if the widget is not TextInput or PasswordInput
+ f = CharField(max_length=10)
+ self.assertEqual(f.widget_attrs(HiddenInput()), {})
+
+ # Otherwise, return a maxlength attribute equal to max_length
+ self.assertEqual(f.widget_attrs(TextInput()), {'maxlength': '10'})
+ self.assertEqual(f.widget_attrs(PasswordInput()), {'maxlength': '10'})
+
# IntegerField ################################################################
def test_integerfield_1(self):