File: test_unicode.py

package info (click to toggle)
pyamf 0.6.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 7,692 kB
  • sloc: python: 17,944; xml: 455; makefile: 116; sql: 38; java: 11; sh: 7
file content (36 lines) | stat: -rw-r--r-- 1,050 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import simplejson as S

def test_encoding1():
    encoder = S.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)
    assert ju == js
    
def test_encoding2():
    u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
    s = u.encode('utf-8')
    ju = S.dumps(u, encoding='utf-8')
    js = S.dumps(s, encoding='utf-8')
    assert ju == js

def test_big_unicode_encode():
    u = u'\U0001d120'
    assert S.dumps(u) == '"\\ud834\\udd20"'
    assert S.dumps(u, ensure_ascii=False) == '"\\ud834\\udd20"'

def test_big_unicode_decode():
    u = u'z\U0001d120x'
    assert S.loads('"' + u + '"') == u
    assert S.loads('"z\\ud834\\udd20x"') == u

def test_unicode_decode():
    for i in range(0, 0xd7ff):
        u = unichr(i)
        json = '"\\u%04x"' % (i,)
        res = S.loads(json)
        assert res == u, 'S.loads(%r) != %r got %r' % (json, u, res)

if __name__ == '__main__':
    test_unicode_decode()