From 8c403b17f94a4ace87bfdd7d40bbc3afb18f7577 Mon Sep 17 00:00:00 2001 From: Qi Zhao Date: Thu, 8 Oct 2020 21:51:14 +0800 Subject: [3.1.x] Fixed #32080 -- Fixed displaying Unicode chars in forms.JSONField and read-only JSONField values in admin. Backport of de81676b51e4dad510ef387c3ae625f9091fe57f from master --- tests/admin_utils/tests.py | 1 + tests/forms_tests/field_tests/test_jsonfield.py | 6 ++++++ 2 files changed, 7 insertions(+) (limited to 'tests') diff --git a/tests/admin_utils/tests.py b/tests/admin_utils/tests.py index cf0d3e064e..da9d24bed5 100644 --- a/tests/admin_utils/tests.py +++ b/tests/admin_utils/tests.py @@ -184,6 +184,7 @@ class UtilsTests(SimpleTestCase): ({'a': {'b': 'c'}}, '{"a": {"b": "c"}}'), (['a', 'b'], '["a", "b"]'), ('a', '"a"'), + ({'a': '你好 世界'}, '{"a": "你好 世界"}'), ({('a', 'b'): 'c'}, "{('a', 'b'): 'c'}"), # Invalid JSON. ] for value, display_value in tests: diff --git a/tests/forms_tests/field_tests/test_jsonfield.py b/tests/forms_tests/field_tests/test_jsonfield.py index 892a23a6a7..f9e4281a01 100644 --- a/tests/forms_tests/field_tests/test_jsonfield.py +++ b/tests/forms_tests/field_tests/test_jsonfield.py @@ -29,6 +29,12 @@ class JSONFieldTest(SimpleTestCase): self.assertEqual(field.prepare_value({'a': 'b'}), '{"a": "b"}') self.assertEqual(field.prepare_value(None), 'null') self.assertEqual(field.prepare_value('foo'), '"foo"') + self.assertEqual(field.prepare_value('你好,世界'), '"你好,世界"') + self.assertEqual(field.prepare_value({'a': '😀🐱'}), '{"a": "😀🐱"}') + self.assertEqual( + field.prepare_value(["你好,世界", "jaźń"]), + '["你好,世界", "jaźń"]', + ) def test_widget(self): field = JSONField() -- cgit v1.3