예제 #1
0
def test_text_encode_utf16be():
    encoder = TextEncoder()
    encoder.set_encoding(TextEncoder.E_utf16be)

    for c in valid_characters():
        enc = encoder.encode_wtext(c)
        assert enc == c.encode('utf-16-be')
예제 #2
0
def test_text_encode_iso8859():
    encoder = TextEncoder()
    encoder.set_encoding(TextEncoder.E_iso8859)

    for i in xrange(255):
        c = unichr(i)
        enc = encoder.encode_wtext(c)
        assert enc == c.encode('latin-1')
예제 #3
0
def test_text_decode_utf16be():
    encoder = TextEncoder()
    encoder.set_encoding(TextEncoder.E_utf16be)

    for c in valid_characters():
        enc = c.encode('utf-16be')

        dec = encoder.decode_text(enc)
        assert len(c) == len(dec)
        assert c == dec
예제 #4
0
def test_text_decode_utf8():
    encoder = TextEncoder()
    encoder.set_encoding(TextEncoder.E_utf8)

    for c in valid_characters():
        enc = c.encode('utf-8')
        assert len(enc) <= 4

        dec = encoder.decode_text(enc)
        assert len(dec) == 1
        assert dec == c
예제 #5
0
def test_text_decode_iso8859():
    encoder = TextEncoder()
    encoder.set_encoding(TextEncoder.E_iso8859)

    for i in xrange(255):
        enc = unichr(i).encode('latin-1')
        assert len(enc) == 1

        dec = encoder.decode_text(enc)
        assert len(dec) == 1
        assert ord(dec) == i
예제 #6
0
def test_text_append_unicode_char():
    encoder = TextEncoder()
    encoder.set_encoding(TextEncoder.E_iso8859)

    code_points = []
    for code_point in [0, 1, 127, 128, 255, 256, 0xfffd, 0x10000, 0x10ffff]:
        if code_point <= sys.maxunicode:
            code_points.append(code_point)
            encoder.append_unicode_char(code_point)

    encoded = encoder.get_wtext()
    assert len(encoded) == len(code_points)

    for a, b in zip(code_points, encoded):
        assert a == ord(b)