def test_escaped_unicode_string(self): unicode_json = b'"hello \\u0e01\\u0e02\\u0e03\\ud835\\udcab\\udb40\\udc70 unicode"' unicode_text = u'hello \u0e01\u0e02\u0e03\U0001D4AB\U000E0070 unicode' buf = TTransport.TMemoryBuffer(unicode_json) transport = TTransport.TBufferedTransportFactory().getTransport(buf) protocol = TJSONProtocol(transport) if sys.version_info[0] == 2: unicode_text = unicode_text.encode('utf8') self.assertEqual(protocol.readString(), unicode_text)
def test_TJSONProtol_read(self): expected = "{'software':'thrift','1':[23,1.2010000000000001,32767,2147483647,9223372036854775807],'base64':'hello thrift','bool':False}" read_data = '{"software":"thrift","1":[23,1.2010000000000001,32767,2147483647,9223372036854775807],"base64":"aGVsbG8gdGhyaWZ0","bool":0}' buff = TTransport.TMemoryBuffer(read_data.encode('utf-8')) transport = TTransport.TBufferedTransportFactory().getTransport(buff) protocol = TJSONProtocol(transport) protocol.readJSONObjectStart() u_1 = protocol.readString() u_2 = protocol.readString() u_3 = protocol.readString() protocol.readJSONArrayStart() u_4 = protocol.readNumber() u_5 = protocol.readDouble() u_6 = protocol.readI16() u_7 = protocol.readI32() u_8 = protocol.readI64() protocol.readJSONArrayEnd() u_9 = protocol.readString() u_10 = protocol.readJSONBase64() u_11 = protocol.readString() u_12 = protocol.readBool() protocol.writeJSONObjectEnd() result_read = {} result_read[u_1] = u_2 result_read[u_3] = [] result_read[u_3].append(u_4) result_read[u_3].append(u_5) result_read[u_3].append(u_6) result_read[u_3].append(u_7) result_read[u_3].append(u_8) result_read[u_9] = u_10.decode('utf-8') result_read[u_11] = u_12 self.assertEqual(eval(expected), result_read)