Exemple #1
0
    def test14_handleConnectionWithExceptionRaisedNotSet(self):
        self.server_factory = FakeFactory(self)
        server = self.server_factory.buildProtocol('addr')

        pt = MockPingTimer()
        pt.isActive = True
        server._ping_timer = pt

        class  MockRaise:
            def __init__(raiseSelf, str):
                raiseSelf.value = str
                del server.exception
        class MockAvatar:
            def __init__(avatarSelf, expected = None):
                avatarSelf.handlePacketCount = 0
                avatarSelf.expectedPacket = expected
            def handlePacket(avatarSelf, packet):
                global triggerCount
                global sendPacketsCount
                avatarSelf.handlePacketCount += 1
                self.assertEquals(packet, avatarSelf.expectedPacket)
                self.assertEquals(pt, server._ping_timer)
                self.assertEquals(pt.resetValues, [ 10 ])
                self.assertEquals(pt.cancelCount, 0)
                self.assertEquals(server._blocked, True)
                self.assertEquals(triggerCount, 0)
                raise MockRaise("handlePacketsRaise")
                return "handlePacketsReturn"

        avatar = MockAvatar("test14 dummy packets")

        global triggerCount
        triggerCount = 0
        def doMyTrigger():
            global triggerCount
            triggerCount += 1
        def doSendPackets(packets):
            self.failIf(True)  # This should never be called

        server.avatar = avatar
        server._blocked = False

        server.triggerTimer = doMyTrigger
        server.sendPackets = doSendPackets

        log_history.reset()

        self.assertEquals(server.exception, None)

        exceptionFound = False
        try:
            server._handleConnection("test14 dummy packets")
            self.failIf(True)  # This line should not be reached.
        except MockRaise, mr:
            exceptionFound = True
            self.failUnless(isinstance(mr, MockRaise))
            self.assertEquals(mr.value, 'handlePacketsRaise')
    def test13_handleConnectionWithExceptionRaised(self):
        self.server_factory = FakeFactory(self)
        server = self.server_factory.buildProtocol('addr')

        pt = MockPingTimer()
        pt.isActive = True
        server._ping_timer = pt

        class MockRaise:
            def __init__(raiseSelf, str):
                raiseSelf.value = str

        class MockAvatar:
            def __init__(avatarSelf, expected=None):
                avatarSelf.handlePacketCount = 0
                avatarSelf.expectedPacket = expected

            def handlePacket(avatarSelf, packet):
                global triggerCount
                global sendPacketsCount
                avatarSelf.handlePacketCount += 1
                self.assertEquals(packet, avatarSelf.expectedPacket)
                self.assertEquals(pt, server._ping_timer)
                self.assertEquals(pt.resetValues, [10])
                self.assertEquals(pt.cancelCount, 0)
                self.assertEquals(server._blocked, True)
                self.assertEquals(triggerCount, 0)
                raise MockRaise("handlePacketsRaise")
                return "handlePacketsReturn"

        avatar = MockAvatar("test13 dummy packets")

        global triggerCount
        triggerCount = 0

        def doMyTrigger():
            global triggerCount
            triggerCount += 1

        def doSendPackets(packets):
            self.failIf(True)  # This should never be called

        server.avatar = avatar
        server._blocked = False

        server.triggerTimer = doMyTrigger
        server.sendPackets = doSendPackets

        clear_all_messages()

        self.assertEquals(server.exception, None)

        server._handleConnection("test13 dummy packets")

        self.assertEquals(get_messages(), ['ping: renew Mr.Fakey/-1'])
        self.assertEquals(pt, server._ping_timer)
        self.assertEquals(pt.resetValues, [10])
        self.assertEquals(pt.cancelCount, 0)
        self.assertEquals(avatar.handlePacketCount, 1)
        self.assertEquals(server._blocked, False)
        self.assertEquals(triggerCount, 1)
        self.assertEquals(len(server.exception), 3)
        self.assertEquals(server.exception[0], MockRaise)
        self.failUnless(isinstance(server.exception[1], MockRaise))
        self.assertEquals(server.exception[1].value, 'handlePacketsRaise')
        self.assertEquals(server.transport.loseConnectionCount, 1)
    def test12_handleConnectionNoException(self):
        """test12_handleConnectionNoException
        This and the following test is a mock-up test of server's
        _handleConnection() method.  I had searched for a way to test this
        particular method in a more interactive way using a real
        client/server connection in one of the classes above.  However, I
        was not able to find a way to force this method to be called using
        the MockUps already developed in the above test classes, and
        decided it was more expedient to test this method using these
        dummy server mechanism here."""

        self.server_factory = FakeFactory(self)
        server = self.server_factory.buildProtocol('addr')

        pt = MockPingTimer()
        pt.isActive = True
        server._ping_timer = pt

        class MockAvatar:
            def __init__(avatarSelf, expected=None):
                avatarSelf.handlePacketCount = 0
                avatarSelf.expectedPacket = expected

            def handlePacket(avatarSelf, packet):
                global triggerCount
                global sendPacketsCount
                avatarSelf.handlePacketCount += 1
                self.assertEquals(packet, avatarSelf.expectedPacket)
                self.assertEquals(pt, server._ping_timer)
                self.assertEquals(pt.resetValues, [10])
                self.assertEquals(pt.cancelCount, 0)
                self.assertEquals(server._blocked, True)
                self.assertEquals(sendPacketsCount, 0)
                return "handlePacketsReturn"

        avatar = MockAvatar("test12 dummy packets")

        global sendPacketsCount
        triggerCount = 0
        sendPacketsCount = 0

        def doMyTrigger():
            self.failIf(True)  # should never be called!

        def doSendPackets(packets):
            global sendPacketsCount
            sendPacketsCount += 1
            self.assertEquals(packets, "handlePacketsReturn")

        server.avatar = avatar
        server._blocked = False

        server.triggerTimer = doMyTrigger
        server.sendPackets = doSendPackets

        clear_all_messages()

        self.assertEquals(server.exception, None)

        server._handleConnection("test12 dummy packets")

        self.assertEquals(get_messages(), ['ping: renew Mr.Fakey/-1'])
        self.assertEquals(pt, server._ping_timer)
        self.assertEquals(pt.resetValues, [10])
        self.assertEquals(pt.cancelCount, 0)
        self.assertEquals(avatar.handlePacketCount, 1)
        self.assertEquals(server._blocked, True)
        self.assertEquals(sendPacketsCount, 1)
        self.assertEquals(triggerCount,
                          0)  # should be 0 since unblock() isn't called
        self.assertEquals(server.exception, None)
        self.assertEquals(server.transport.loseConnectionCount, 0)
    def test13_handleConnectionWithExceptionRaised(self):
        self.server_factory = FakeFactory(self)
        server = self.server_factory.buildProtocol('addr')

        pt = MockPingTimer()
        pt.isActive = True
        server._ping_timer = pt

        class  MockRaise:
            def __init__(raiseSelf, str):
                raiseSelf.value = str
        class MockAvatar:
            def __init__(avatarSelf, expected = None):
                avatarSelf.handlePacketCount = 0
                avatarSelf.expectedPacket = expected
            def handlePacket(avatarSelf, packet):
                global triggerCount
                global sendPacketsCount
                avatarSelf.handlePacketCount += 1
                self.assertEquals(packet, avatarSelf.expectedPacket)
                self.assertEquals(pt, server._ping_timer)
                self.assertEquals(pt.resetValues, [ 10 ])
                self.assertEquals(pt.cancelCount, 0)
                self.assertEquals(server._blocked, True)
                self.assertEquals(triggerCount, 0)
                raise MockRaise("handlePacketsRaise")
                return "handlePacketsReturn"

        avatar = MockAvatar("test13 dummy packets")

        global triggerCount
        triggerCount = 0
        def doMyTrigger():
            global triggerCount
            triggerCount += 1
        def doSendPackets(packets):
            self.failIf(True)  # This should never be called

        server.avatar = avatar
        server._blocked = False

        server.triggerTimer = doMyTrigger
        server.sendPackets = doSendPackets

        log_history.reset()

        self.assertEquals(server.exception, None)

        server._handleConnection("test13 dummy packets")

        self.assertEquals(log_history.get_all(), ['ping: renew Mr.Fakey/-1'])
        self.assertEquals(pt, server._ping_timer)
        self.assertEquals(pt.resetValues, [ 10 ])
        self.assertEquals(pt.cancelCount, 0)
        self.assertEquals(avatar.handlePacketCount, 1)
        self.assertEquals(server._blocked, False)
        self.assertEquals(triggerCount, 1)
        self.assertEquals(len(server.exception), 3)
        self.assertEquals(server.exception[0], MockRaise)
        self.failUnless(isinstance(server.exception[1], MockRaise))
        self.assertEquals(server.exception[1].value, 'handlePacketsRaise')
        self.assertEquals(server.transport.loseConnectionCount, 1)
    def test12_handleConnectionNoException(self):
        """test12_handleConnectionNoException
        This and the following test is a mock-up test of server's
        _handleConnection() method.  I had searched for a way to test this
        particular method in a more interactive way using a real
        client/server connection in one of the classes above.  However, I
        was not able to find a way to force this method to be called using
        the MockUps already developed in the above test classes, and
        decided it was more expedient to test this method using these
        dummy server mechanism here."""

        self.server_factory = FakeFactory(self)
        server = self.server_factory.buildProtocol('addr')

        pt = MockPingTimer()
        pt.isActive = True
        server._ping_timer = pt

        class MockAvatar:
            def __init__(avatarSelf, expected = None):
                avatarSelf.handlePacketCount = 0
                avatarSelf.expectedPacket = expected
            def handlePacket(avatarSelf, packet):
                global triggerCount
                global sendPacketsCount
                avatarSelf.handlePacketCount += 1
                self.assertEquals(packet, avatarSelf.expectedPacket)
                self.assertEquals(pt, server._ping_timer)
                self.assertEquals(pt.resetValues, [ 10 ])
                self.assertEquals(pt.cancelCount, 0)
                self.assertEquals(server._blocked, True)
                self.assertEquals(sendPacketsCount, 0)
                return "handlePacketsReturn"

        avatar = MockAvatar("test12 dummy packets")

        global sendPacketsCount
        triggerCount = 0
        sendPacketsCount = 0
        def doMyTrigger():
            self.failIf(True) # should never be called!
        def doSendPackets(packets):
            global sendPacketsCount
            sendPacketsCount += 1
            self.assertEquals(packets, "handlePacketsReturn")

        server.avatar = avatar
        server._blocked = False

        server.triggerTimer = doMyTrigger
        server.sendPackets = doSendPackets

        log_history.reset()

        self.assertEquals(server.exception, None)

        server._handleConnection("test12 dummy packets")

        self.assertEquals(log_history.get_all(), ['ping: renew Mr.Fakey/-1'])
        self.assertEquals(pt, server._ping_timer)
        self.assertEquals(pt.resetValues, [ 10 ])
        self.assertEquals(pt.cancelCount, 0)
        self.assertEquals(avatar.handlePacketCount, 1)
        self.assertEquals(server._blocked, True)
        self.assertEquals(sendPacketsCount, 1)
        self.assertEquals(triggerCount, 0)  # should be 0 since unblock() isn't called 
        self.assertEquals(server.exception, None)
        self.assertEquals(server.transport.loseConnectionCount, 0)