class TestEof(unittest.TestCase): def setUp(self): self.trans = TTransport.TMemoryBuffer() self.trans = THeaderTransport(self.trans) self.prot = TBinaryProtocol.TBinaryProtocol(self.trans) self.x = Xtruct() self.x.string_thing = "Zero" self.x.byte_thing = 0 def testOversizeFrameRecv(self): """Test that an oversize frame on recv gets a TTransportException""" self.trans.set_max_frame_size(200) self.x.write(self.prot) self.trans.flush() inTrans = TTransport.TMemoryBuffer( self.trans.getTransport().getvalue()) inTrans = THeaderTransport(inTrans) inProt = TBinaryProtocol.TBinaryProtocol(inTrans) inTrans.set_max_frame_size(2) try: self.x.read(inProt) except TTransport.TTransportException: return self.fail("Should have gotten TTransportException") def testOversizeFrameSend(self): """Test that an oversize frame on send gets a TTransportException""" self.trans.set_max_frame_size(2) self.x.write(self.prot) try: self.trans.flush() except TTransport.TTransportException: return self.fail("Should have gotten TTransportException")
class TestEof(unittest.TestCase): def setUp(self): self.trans = TTransport.TMemoryBuffer() self.trans = THeaderTransport(self.trans) self.prot = TBinaryProtocol.TBinaryProtocol(self.trans) self.x = Xtruct() self.x.string_thing = "Zero" self.x.byte_thing = 0 def testOversizeFrameRecv(self): """Test that an oversize frame on recv gets a TTransportException""" self.trans.set_max_frame_size(200) self.x.write(self.prot) self.trans.flush() inTrans = TTransport.TMemoryBuffer(self.trans.getTransport().getvalue()) inTrans = THeaderTransport(inTrans) inProt = TBinaryProtocol.TBinaryProtocol(inTrans) inTrans.set_max_frame_size(2) try: self.x.read(inProt) except TTransport.TTransportException: return self.fail("Should have gotten TTransportException") def testOversizeFrameSend(self): """Test that an oversize frame on send gets a TTransportException""" self.trans.set_max_frame_size(2) self.x.write(self.prot) try: self.trans.flush() except TTransport.TTransportException: return self.fail("Should have gotten TTransportException")
def serialize_texception(cls, fname, seqid, exception): """This saves us a bit of processing time for timeout handling by reusing the Thrift structs involved in exception serialization. NOTE: this is not thread-safe nor it is meant to be. """ # the serializer is a singleton if cls._exception_serializer is None: buffer = TWriteOnlyBuffer() transport = THeaderTransport(buffer) cls._exception_serializer = THeaderProtocol(transport) else: transport = cls._exception_serializer.trans buffer = transport.getTransport() buffer.reset() serializer = cls._exception_serializer serializer.writeMessageBegin(fname, TMessageType.EXCEPTION, seqid) exception.write(serializer) serializer.writeMessageEnd() serializer.trans.flush() return buffer.getvalue()
def serialize_texception(cls, fname, seqid, exception): """This saves us a bit of processing time for timeout handling by reusing the Thrift structs involved in exception serialization. NOTE: this is not thread-safe nor is it meant to be. """ # the serializer is a singleton if cls._exception_serializer is None: buffer = TWriteOnlyBuffer() transport = THeaderTransport(buffer) cls._exception_serializer = THeaderProtocol(transport) else: transport = cls._exception_serializer.trans buffer = transport.getTransport() buffer.reset() serializer = cls._exception_serializer serializer.writeMessageBegin(fname, TMessageType.EXCEPTION, seqid) exception.write(serializer) serializer.writeMessageEnd() serializer.trans.flush() return buffer.getvalue()