Submit
Path:
~
/
/
lib64
/
python2.7
/
site-packages
/
simplejson
/
tests
/
File Content:
test_unicode.py
import sys import codecs from unittest import TestCase import simplejson as json from simplejson.compat import unichr, text_type, b, u, BytesIO class TestUnicode(TestCase): def test_encoding1(self): encoder = json.JSONEncoder(encoding='utf-8') u = 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.assertEqual(ju, js) def test_encoding2(self): u = 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.assertEqual(ju, js) def test_encoding3(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps(u) self.assertEqual(j, '"\\u03b1\\u03a9"') def test_encoding4(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps([u]) self.assertEqual(j, '["\\u03b1\\u03a9"]') def test_encoding5(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps(u, ensure_ascii=False) self.assertEqual(j, u'"' + u + u'"') def test_encoding6(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps([u], ensure_ascii=False) self.assertEqual(j, u'["' + u + u'"]') def test_big_unicode_encode(self): u = u'\U0001d120' self.assertEqual(json.dumps(u), '"\\ud834\\udd20"') self.assertEqual(json.dumps(u, ensure_ascii=False), u'"\U0001d120"') def test_big_unicode_decode(self): u = u'z\U0001d120x' self.assertEqual(json.loads('"' + u + '"'), u) self.assertEqual(json.loads('"z\\ud834\\udd20x"'), u) def test_unicode_decode(self): for i in range(0, 0xd7ff): u = unichr(i) #s = '"\\u{0:04x}"'.format(i) s = '"\\u%04x"' % (i,) self.assertEqual(json.loads(s), u) def test_object_pairs_hook_with_unicode(self): s = u'{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}' p = [(u"xkd", 1), (u"kcw", 2), (u"art", 3), (u"hxm", 4), (u"qrt", 5), (u"pad", 6), (u"hoy", 7)] self.assertEqual(json.loads(s), eval(s)) self.assertEqual(json.loads(s, object_pairs_hook=lambda x: x), p) od = json.loads(s, object_pairs_hook=json.OrderedDict) self.assertEqual(od, json.OrderedDict(p)) self.assertEqual(type(od), json.OrderedDict) # the object_pairs_hook takes priority over the object_hook self.assertEqual(json.loads(s, object_pairs_hook=json.OrderedDict, object_hook=lambda x: None), json.OrderedDict(p)) def test_default_encoding(self): self.assertEqual(json.loads(u'{"a": "\xe9"}'.encode('utf-8')), {'a': u'\xe9'}) def test_unicode_preservation(self): self.assertEqual(type(json.loads(u'""')), text_type) self.assertEqual(type(json.loads(u'"a"')), text_type) self.assertEqual(type(json.loads(u'["a"]')[0]), text_type) def test_ensure_ascii_false_returns_unicode(self): # http://code.google.com/p/simplejson/issues/detail?id=48 self.assertEqual(type(json.dumps([], ensure_ascii=False)), text_type) self.assertEqual(type(json.dumps(0, ensure_ascii=False)), text_type) self.assertEqual(type(json.dumps({}, ensure_ascii=False)), text_type) self.assertEqual(type(json.dumps("", ensure_ascii=False)), text_type) def test_ensure_ascii_false_bytestring_encoding(self): # http://code.google.com/p/simplejson/issues/detail?id=48 doc1 = {u'quux': b('Arr\xc3\xaat sur images')} doc2 = {u'quux': u('Arr\xeat sur images')} doc_ascii = '{"quux": "Arr\\u00eat sur images"}' doc_unicode = u'{"quux": "Arr\xeat sur images"}' self.assertEqual(json.dumps(doc1), doc_ascii) self.assertEqual(json.dumps(doc2), doc_ascii) self.assertEqual(json.dumps(doc1, ensure_ascii=False), doc_unicode) self.assertEqual(json.dumps(doc2, ensure_ascii=False), doc_unicode) def test_ensure_ascii_linebreak_encoding(self): # http://timelessrepo.com/json-isnt-a-javascript-subset s1 = u'\u2029\u2028' s2 = s1.encode('utf8') expect = '"\\u2029\\u2028"' self.assertEqual(json.dumps(s1), expect) self.assertEqual(json.dumps(s2), expect) self.assertEqual(json.dumps(s1, ensure_ascii=False), expect) self.assertEqual(json.dumps(s2, ensure_ascii=False), expect) def test_invalid_escape_sequences(self): # incomplete escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1234') # invalid escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12x4"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1x34"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ux234"') if sys.maxunicode > 65535: # invalid escape sequence for low surrogate self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00x0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0x00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\ux000"') def test_ensure_ascii_still_works(self): # in the ascii range, ensure that everything is the same for c in map(unichr, range(0, 127)): self.assertEqual( json.dumps(c, ensure_ascii=False), json.dumps(c)) snowman = u'\N{SNOWMAN}' self.assertEqual( json.dumps(c, ensure_ascii=False), '"' + c + '"') def test_strip_bom(self): content = u"\u3053\u3093\u306b\u3061\u308f" json_doc = codecs.BOM_UTF8 + b(json.dumps(content)) self.assertEqual(json.load(BytesIO(json_doc)), content) for doc in json_doc, json_doc.decode('utf8'): self.assertEqual(json.loads(doc), content)
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
__init__.py
1979 bytes
0644
__init__.pyc
3309 bytes
0644
__init__.pyo
3309 bytes
0644
test_bigint_as_string.py
2238 bytes
0644
test_bigint_as_string.pyc
2638 bytes
0644
test_bigint_as_string.pyo
2638 bytes
0644
test_bitsize_int_as_string.py
2297 bytes
0644
test_bitsize_int_as_string.pyc
3029 bytes
0644
test_bitsize_int_as_string.pyo
3029 bytes
0644
test_check_circular.py
917 bytes
0644
test_check_circular.pyc
2161 bytes
0644
test_check_circular.pyo
2161 bytes
0644
test_decimal.py
2544 bytes
0644
test_decimal.pyc
3521 bytes
0644
test_decimal.pyo
3521 bytes
0644
test_decode.py
4021 bytes
0644
test_decode.pyc
5884 bytes
0644
test_decode.pyo
5884 bytes
0644
test_default.py
221 bytes
0644
test_default.pyc
751 bytes
0644
test_default.pyo
751 bytes
0644
test_dump.py
4999 bytes
0644
test_dump.pyc
6562 bytes
0644
test_dump.pyo
6562 bytes
0644
test_encode_basestring_ascii.py
2337 bytes
0644
test_encode_basestring_ascii.pyc
3587 bytes
0644
test_encode_basestring_ascii.pyo
3587 bytes
0644
test_encode_for_html.py
1022 bytes
0644
test_encode_for_html.pyc
1864 bytes
0644
test_encode_for_html.pyo
1864 bytes
0644
test_errors.py
1549 bytes
0644
test_errors.pyc
2508 bytes
0644
test_errors.pyo
2508 bytes
0644
test_fail.py
6346 bytes
0644
test_fail.pyc
5397 bytes
0644
test_fail.pyo
5397 bytes
0644
test_float.py
1430 bytes
0644
test_float.pyc
2557 bytes
0644
test_float.pyo
2557 bytes
0644
test_for_json.py
2767 bytes
0644
test_for_json.pyc
5853 bytes
0644
test_for_json.pyo
5853 bytes
0644
test_indent.py
2568 bytes
0644
test_indent.pyc
2995 bytes
0644
test_indent.pyo
2995 bytes
0644
test_item_sort_key.py
1376 bytes
0644
test_item_sort_key.pyc
2597 bytes
0644
test_item_sort_key.pyo
2597 bytes
0644
test_iterable.py
1390 bytes
0644
test_iterable.pyc
1808 bytes
0644
test_iterable.pyo
1808 bytes
0644
test_namedtuple.py
4004 bytes
0644
test_namedtuple.pyc
6993 bytes
0644
test_namedtuple.pyo
6993 bytes
0644
test_pass1.py
1746 bytes
0644
test_pass1.pyc
2186 bytes
0644
test_pass1.pyo
2186 bytes
0644
test_pass2.py
386 bytes
0644
test_pass2.pyc
827 bytes
0644
test_pass2.pyo
827 bytes
0644
test_pass3.py
482 bytes
0644
test_pass3.pyc
922 bytes
0644
test_pass3.pyo
922 bytes
0644
test_raw_json.py
1062 bytes
0644
test_raw_json.pyc
1874 bytes
0644
test_raw_json.pyo
1874 bytes
0644
test_recursion.py
1679 bytes
0644
test_recursion.pyc
2585 bytes
0644
test_recursion.pyo
2585 bytes
0644
test_scanstring.py
7311 bytes
0644
test_scanstring.pyc
6721 bytes
0644
test_scanstring.pyo
6682 bytes
0644
test_separators.py
942 bytes
0644
test_separators.pyc
1562 bytes
0644
test_separators.pyo
1562 bytes
0644
test_speedups.py
3106 bytes
0644
test_speedups.pyc
5046 bytes
0644
test_speedups.pyo
5046 bytes
0644
test_str_subclass.py
551 bytes
0644
test_str_subclass.pyc
1359 bytes
0644
test_str_subclass.pyo
1359 bytes
0644
test_subclass.py
1124 bytes
0644
test_subclass.pyc
2053 bytes
0644
test_subclass.pyo
2053 bytes
0644
test_tool.py
2853 bytes
0644
test_tool.pyc
3428 bytes
0644
test_tool.pyo
3428 bytes
0644
test_tuple.py
1831 bytes
0644
test_tuple.pyc
1830 bytes
0644
test_tuple.pyo
1830 bytes
0644
test_unicode.py
6996 bytes
0644
test_unicode.pyc
8484 bytes
0644
test_unicode.pyo
8484 bytes
0644
N4ST4R_ID | Naxtarrr