diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-05-02 12:36:44 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-05-02 12:36:44 (GMT) |
commit | c6b607d4a9e4d60fb506034ce67fc89734bb68a7 (patch) | |
tree | b4f27e81ab25a9dfe6a97433f4d25c263b59f6cc /Lib/json/tests/test_unicode.py | |
parent | 7255f18556ae70fc28b563a345577d3ec8f6f0ba (diff) | |
download | cpython-c6b607d4a9e4d60fb506034ce67fc89734bb68a7.zip cpython-c6b607d4a9e4d60fb506034ce67fc89734bb68a7.tar.gz cpython-c6b607d4a9e4d60fb506034ce67fc89734bb68a7.tar.bz2 |
port simplejson upgrade from the trunk #4136
json also now works only with unicode strings
Patch by Antoine Pitrou; updated by me
Diffstat (limited to 'Lib/json/tests/test_unicode.py')
-rw-r--r-- | Lib/json/tests/test_unicode.py | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/Lib/json/tests/test_unicode.py b/Lib/json/tests/test_unicode.py index 00bf58e..12de83c 100644 --- a/Lib/json/tests/test_unicode.py +++ b/Lib/json/tests/test_unicode.py @@ -4,20 +4,8 @@ import json from collections import OrderedDict class TestUnicode(TestCase): - def test_encoding1(self): - encoder = json.JSONEncoder(encoding='utf-8') - u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' - s = u.encode('utf-8') - ju = encoder.encode(u) - js = encoder.encode(s) - self.assertEquals(ju, js) - - def test_encoding2(self): - u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' - s = u.encode('utf-8') - ju = json.dumps(u, encoding='utf-8') - js = json.dumps(s, encoding='utf-8') - self.assertEquals(ju, js) + # test_encoding1 and test_encoding2 from 2.x are irrelevant (only str + # is supported as input, not bytes). def test_encoding3(self): u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' @@ -52,8 +40,22 @@ class TestUnicode(TestCase): def test_unicode_decode(self): for i in range(0, 0xd7ff): u = chr(i) - js = '"\\u{0:04x}"'.format(i) - self.assertEquals(json.loads(js), u) + s = '"\\u{0:04x}"'.format(i) + self.assertEquals(json.loads(s), u) + + def test_unicode_preservation(self): + self.assertEquals(type(json.loads('""')), str) + self.assertEquals(type(json.loads('"a"')), str) + self.assertEquals(type(json.loads('["a"]')[0]), str) + + def test_bytes_encode(self): + self.assertRaises(TypeError, json.dumps, b"hi") + self.assertRaises(TypeError, json.dumps, [b"hi"]) + + def test_bytes_decode(self): + self.assertRaises(TypeError, json.loads, b'"hi"') + self.assertRaises(TypeError, json.loads, b'["hi"]') + def test_object_pairs_hook_with_unicode(self): s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}' |