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
예제 #3
0
    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
예제 #4
0
    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
예제 #5
0
 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
예제 #7
0
    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