def deferPacket(self, client): server = self.server_factory.instance self.failUnless(search_output('protocol established')) clear_all_messages() self.deferredPacket = defer.Deferred() server.sendPackets([self.deferredPacket, PacketAck()]) self.assertEquals(get_messages(), []) self.deferredPacket.callback(PacketPing()) self.assertEquals(get_messages(), []) def callbackDeferredPacket(client): pingFound = False ackFound = False msgs = get_messages() for msg in get_messages(): if msg == '(3 bytes) => type = PING(5)': self.failIf(pingFound or ackFound) pingFound = True elif msg == '(3 bytes) => type = ACK(4)': self.failUnless(pingFound) ackFound = True self.failUnless(ackFound and pingFound) d = client.connection_lost_deferred d.addCallback(callbackDeferredPacket) return d
def deferErrorPacket(self, client): server = self.server_factory.instance clear_all_messages() self.deferredPacket = defer.Deferred() server.sendPackets([self.deferredPacket, PacketAck()]) self.assertEquals(get_messages(), []) self.deferredPacket.errback("forced to fail") self.assertEquals(get_messages(), []) def callbackDeferredPacket(client): errFound = False ackFound = False msgs = get_messages() for msg in get_messages(): if msg == "(132 bytes) => type = ERROR(3) message = [Failure instance: Traceback (failure with no frames): <class 'twisted.python.failure.DefaultException'>: forced to fail\n], code = 0, other_type = ERROR": self.failIf(errFound or ackFound) errFound = True elif msg == '(3 bytes) => type = ACK(4)': self.failUnless(errFound) ackFound = True self.failUnless(ackFound and errFound) d = client.connection_lost_deferred d.addCallback(callbackDeferredPacket) return d
def deadServerTransport(self, client): server = self.server_factory.instance saveMyTransport = server.transport server.transport = None server.sendPackets([PacketPing()]) self.assertEquals(len(server._out_buffer), 1) self.assertEquals(server._out_buffer[0].type, PACKET_PING) # self.assertTrue(log_history.search("bufferized")) # self.assertTrue(log_history.search("no usuable transport")) server.transport = saveMyTransport
def deadServerTransport(self, client): server = self.server_factory.instance saveMyTransport = server.transport server.transport = None server.sendPackets([PacketPing()]) self.assertEquals(len(server.bufferized_packets), 1) self.assertEquals(server.bufferized_packets[0].type, PACKET_PING) self.assertTrue(log_history.search("bufferized")) self.assertTrue(log_history.search("no usuable transport")) server.transport = saveMyTransport return client.connection_lost_deferred
def deferPacket(self, client): server = self.server_factory.instance self.failUnless(log_history.search('protocol established')) log_history.reset() self.deferredPacket = defer.Deferred() server.sendPackets([ self.deferredPacket, PacketAck()]) self.assertEquals(log_history.get_all(), []) self.deferredPacket.callback(PacketPing()) self.assertEquals(log_history.get_all(), []) def callbackDeferredPacket(client): self.assertTrue(log_history.search('ACK type = 4 length = 3')) d = client.connection_lost_deferred d.addCallback(callbackDeferredPacket) return d
def deadServerTransport(self, client): server = self.server_factory.instance saveMyTransport = server.transport server.transport = None self.messageValue = "" def getMessage(str): self.messageValue += str server.message = getMessage server.sendPackets([PacketPing()]) self.assertEquals(len(server.bufferized_packets), 1) self.assertEquals(server.bufferized_packets[0].type, PACKET_PING) self.assertEquals(self.messageValue.find("bufferized") > 0, True) self.assertEquals( self.messageValue.find("no usuable transport") > 0, True) server.transport = saveMyTransport return client.connection_lost_deferred
def deferErrorPacket(self, client): server = self.server_factory.instance log_history.reset() self.deferredPacket = defer.Deferred() server.sendPackets([ self.deferredPacket, PacketAck()]) self.assertEquals(log_history.get_all(), []) self.deferredPacket.errback("forced to fail") self.assertEquals(log_history.get_all(), []) def callbackDeferredPacket(client): errFound = False ackFound = False for msg in log_history.get_all(): if msg == "(132 bytes) => ERROR type = 3 length = 132 message = [Failure instance: Traceback (failure with no frames): <class 'twisted.python.failure.DefaultException'>: forced to fail\n] code = 0 other_type = 3": self.failIf(errFound or ackFound) errFound = True elif msg == '(3 bytes) => ACK type = 4 length = 3': self.failUnless(errFound) ackFound = True self.failUnless(ackFound and errFound) d = client.connection_lost_deferred d.addCallback(callbackDeferredPacket) return d