23importlib.reload(test_objects)
24from test_objects
import *
34for codec_id, file_extension
in ((
"Bach_beta2",
"bach"),
41 co = get_codec(codec_id)
42 def test_encode_decode(obj, e = co.encode, d = co.decode):
50 assert(co.decoder.eos())
55 assert( d(e(obj)) == d(e(d(e(obj)))) )
56 assert( d(e(d(e(obj)))) == d(e(d(e(d(e(obj)))))) )
63 assert(d(e(obj2))==d(s))
65 for i
in range(0,len(s),5):
69 assert(d(e(obj2))==d(s))
71 test_encode_decode([])
72 test_encode_decode({})
73 test_encode_decode([{}])
74 test_encode_decode({
"a":[]})
76 test_encode_decode(obj)
77 test_encode_decode(msg)
78 test_encode_decode(lst_simple)
84 s1 = co.encode(Object(i=8, a=[5, [], {}], j=Object(o=3.4))) + co.encode(Object(say=
"Hello!")) + co.encoder.close()
85 s2 = co.encode(Object(say=
"Hello!")) + co.encoder.close()
86 s3 = co.encoder.close()
87 res1 =
'[\012\011{\012\011\011a: [\012\011\011\0115,\012\011\011\011[],\012\011\011\011{}\012\011\011],\012\011\011i: 8,\012\011\011j: {\012\011\011\011o: 3.4\012\011\011}\012\011},\012\011{\012\011\011say: "Hello!"\012\011}\012]\012'
88 res2 =
'[\012\011{\012\011\011say: "Hello!"\012\011}\012]\012'
94 def test_stream_decode(s, res):
95 assert(co.decoder.eos())
96 assert(str(co.decode(s)) == res)
98 for i
in range(0,len(s),5):
99 res_lst = co.decode(s[i:i+5])
104 assert( str(lst)==res )
106 test_stream_decode(s1, res1)
107 test_stream_decode(s2, res2)
108 test_stream_decode(s3, res3)
114 file_name =
"test." + file_extension
115 file_content = open(file_name).read()
116 neg1 = NegotiationClient([codec_id])
117 assert(neg1(file_content)==
"found")
118 str1 = co.encode(msg)+co.encoder.close()
120 print(codec_id +
" encoding not same!")
122 msg2 = co.decode(str1)
123 file_content = open(file_name).read()
124 neg2 = NegotiationClient([codec_id])
125 assert(neg2(file_content)==
"found")
126 str2 = co.encode(msg2)+co.encoder.close()
128 print(
"%(codec_id)s decoding and %(codec_id)s encoding not same!" % locals())
131 assert(co.decoder.eos())
135 objects = read_file(file_name)
136 assert(str(objects)==str(msg))
138 print(
"Exception testing codec", codec_id)