JTYPES[CTYPES[key]] = key
-class JSONBaseContext():
+class JSONBaseContext(object):
def __init__(self, protocol):
self.protocol = protocol
def __init__(self, trans):
TProtocolBase.__init__(self, trans)
+ self.resetWriteContext()
+ self.resetReadContext()
def resetWriteContext(self):
self.contextStack = []
self.readJSONSyntaxChar(QUOTE)
try:
return float(self.readJSONNumericChars())
- except ValueErro:
+ except ValueError:
raise TProtocolException(TProtocolException.INVALID_DATA,
"Bad data encounted in numeric data")
def readFieldBegin(self):
character = self.reader.peek()
- type = 0
+ ttype = 0
id = 0
if character == RBRACE:
- type = TType.STOP
+ ttype = TType.STOP
else:
id = self.readJSONInteger()
self.readJSONObjectStart()
- type = JTYPES[self.readJSONString(False)]
- return (None, type, id)
+ ttype = JTYPES[self.readJSONString(False)]
+ return (None, ttype, id)
def readFieldEnd(self):
self.readJSONObjectEnd()
self.readJSONArrayStart()
elemType = JTYPES[self.readJSONString(False)]
size = self.readJSONInteger()
- return (type, size)
+ return (elemType, size)
readListBegin = readCollectionBegin
readSetBegin = readCollectionBegin
def writeStructEnd(self):
self.writeJSONObjectEnd()
- def writeFieldBegin(self, name, type, id):
+ def writeFieldBegin(self, name, ttype, id):
self.writeJSONNumber(id)
self.writeJSONObjectStart()
- self.writeJSONString(CTYPES[type])
+ self.writeJSONString(CTYPES[ttype])
def writeFieldEnd(self):
self.writeJSONObjectEnd()
def __init__(self, trans):
self.trans = trans
- def writeMessageBegin(self, name, type, seqid):
+ def writeMessageBegin(self, name, ttype, seqid):
pass
def writeMessageEnd(self):
def writeStructEnd(self):
pass
- def writeFieldBegin(self, name, type, id):
+ def writeFieldBegin(self, name, ttype, fid):
pass
def writeFieldEnd(self):
def writeSetEnd(self):
pass
- def writeBool(self, bool):
+ def writeBool(self, bool_val):
pass
def writeByte(self, byte):
def writeDouble(self, dub):
pass
- def writeString(self, str):
+ def writeString(self, str_val):
pass
def readMessageBegin(self):
def readString(self):
pass
- def skip(self, type):
- if type == TType.STOP:
+ def skip(self, ttype):
+ if ttype == TType.STOP:
return
- elif type == TType.BOOL:
+ elif ttype == TType.BOOL:
self.readBool()
- elif type == TType.BYTE:
+ elif ttype == TType.BYTE:
self.readByte()
- elif type == TType.I16:
+ elif ttype == TType.I16:
self.readI16()
- elif type == TType.I32:
+ elif ttype == TType.I32:
self.readI32()
- elif type == TType.I64:
+ elif ttype == TType.I64:
self.readI64()
- elif type == TType.DOUBLE:
+ elif ttype == TType.DOUBLE:
self.readDouble()
- elif type == TType.STRING:
+ elif ttype == TType.STRING:
self.readString()
- elif type == TType.STRUCT:
+ elif ttype == TType.STRUCT:
name = self.readStructBegin()
while True:
- (name, type, id) = self.readFieldBegin()
- if type == TType.STOP:
+ (name, ttype, id) = self.readFieldBegin()
+ if ttype == TType.STOP:
break
- self.skip(type)
+ self.skip(ttype)
self.readFieldEnd()
self.readStructEnd()
- elif type == TType.MAP:
+ elif ttype == TType.MAP:
(ktype, vtype, size) = self.readMapBegin()
- for i in range(size):
+ for i in xrange(size):
self.skip(ktype)
self.skip(vtype)
self.readMapEnd()
- elif type == TType.SET:
+ elif ttype == TType.SET:
(etype, size) = self.readSetBegin()
- for i in range(size):
+ for i in xrange(size):
self.skip(etype)
self.readSetEnd()
- elif type == TType.LIST:
+ elif ttype == TType.LIST:
(etype, size) = self.readListBegin()
- for i in range(size):
+ for i in xrange(size):
self.skip(etype)
self.readListEnd()
from DebugProtoTest.ttypes import CompactProtoTestStruct, Empty
from thrift.transport import TTransport
from thrift.transport import TSocket
-from thrift.protocol import TBinaryProtocol, TCompactProtocol
+from thrift.protocol import TBinaryProtocol, TCompactProtocol, TJSONProtocol
from thrift.TSerialization import serialize, deserialize
import unittest
import time
class CompactProtocolTest(AbstractTest):
protocol_factory = TCompactProtocol.TCompactProtocolFactory()
+class JSONProtocolTest(AbstractTest):
+ protocol_factory = TJSONProtocol.TJSONProtocolFactory()
+
class AcceleratedFramedTest(unittest.TestCase):
def testSplit(self):
"""Test FramedTransport and BinaryProtocolAccelerated
suite.addTest(loader.loadTestsFromTestCase(NormalBinaryTest))
suite.addTest(loader.loadTestsFromTestCase(AcceleratedBinaryTest))
suite.addTest(loader.loadTestsFromTestCase(CompactProtocolTest))
+ suite.addTest(loader.loadTestsFromTestCase(JSONProtocolTest))
suite.addTest(loader.loadTestsFromTestCase(AcceleratedFramedTest))
suite.addTest(loader.loadTestsFromTestCase(SerializersTest))
return suite