From f5ea9aa2f32c7ca9a1fdf793580fddba3daae1b9 Mon Sep 17 00:00:00 2001 From: Dan Strokirk Date: Thu, 24 Jun 2021 17:15:25 +0200 Subject: Fixed #32807 -- Fixed JSONField crash when redisplaying None values. Thanks to Alex Hill for the initial patch. --- tests/forms_tests/field_tests/test_jsonfield.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/field_tests/test_jsonfield.py b/tests/forms_tests/field_tests/test_jsonfield.py index 46ef0005f6..b4f3e74f6a 100644 --- a/tests/forms_tests/field_tests/test_jsonfield.py +++ b/tests/forms_tests/field_tests/test_jsonfield.py @@ -97,6 +97,21 @@ class JSONFieldTest(SimpleTestCase): form = JSONForm({'json_field': '["bar"]'}, initial={'json_field': ['foo']}) self.assertIn('["foo"]', form.as_p()) + def test_redisplay_none_input(self): + class JSONForm(Form): + json_field = JSONField(required=True) + + tests = [ + {}, + {'json_field': None}, + ] + for data in tests: + with self.subTest(data=data): + form = JSONForm(data) + self.assertEqual(form['json_field'].value(), 'null') + self.assertIn('null', form.as_p()) + self.assertEqual(form.errors['json_field'], ['This field is required.']) + def test_redisplay_wrong_input(self): """ Displaying a bound form (typically due to invalid input). The form -- cgit v1.3