diff options
| author | Josh Schneier <josh.schneier@gmail.com> | 2017-09-05 12:41:38 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-09-05 16:42:15 -0400 |
| commit | 1d1a56c59983ae40675aff2c737bdde8f988e5e9 (patch) | |
| tree | 0bc7a25e31ad9bcf2b970141a0357b60f8e9a8e0 /tests | |
| parent | 312050df82919cb87180705c826302b7b9b5e367 (diff) | |
[1.11.x] Fixed #28555 -- Made CharField convert whitespace-only values to the empty_value when strip is enabled.
Backport of 48c394a6fc2594891f766293afec8f86d63e1015 from master
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/forms_tests/field_tests/test_charfield.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/forms_tests/field_tests/test_charfield.py b/tests/forms_tests/field_tests/test_charfield.py index d8fa41b073..aea892ea89 100644 --- a/tests/forms_tests/field_tests/test_charfield.py +++ b/tests/forms_tests/field_tests/test_charfield.py @@ -121,6 +121,29 @@ class CharFieldTest(FormFieldAssertionsMixin, SimpleTestCase): self.assertEqual(f.clean(' 1'), ' 1') self.assertEqual(f.clean('1 '), '1 ') + def test_strip_before_checking_empty(self): + """ + A whitespace-only value, ' ', is stripped to an empty string and then + converted to the empty value, None. + """ + f = CharField(required=False, empty_value=None) + self.assertIsNone(f.clean(' ')) + + def test_clean_non_string(self): + """CharField.clean() calls str(value) before stripping it.""" + class StringWrapper: + def __init__(self, v): + self.v = v + + def __str__(self): + return self.v + + value = StringWrapper(' ') + f1 = CharField(required=False, empty_value=None) + self.assertIsNone(f1.clean(value)) + f2 = CharField(strip=False) + self.assertEqual(f2.clean(value), ' ') + def test_charfield_disabled(self): f = CharField(disabled=True) self.assertWidgetRendersTo(f, '<input type="text" name="f" id="id_f" disabled required />') |
