コード例 #1
0
    def test_heartbeat_timeout(self):
        """
        Initialize the Listener with a heartbeat value, then
        start the heartbeat.  Wait long enough for the heartbeat
        to timeout MAX_MISSED_HEARTBEATS times, and then assert
        that the error_callback was called.
        """

        self.resetTestVars()
        test_recovery_attempts = 1
        test_heartbeat = 1
        test_max_missed_heartbeats = 5
        pa_listener = Listener(None, test_recovery_attempts, delim=None, heartbeat=test_heartbeat,
                               max_missed_heartbeats=test_max_missed_heartbeats,
                               callback_data=self.myGotData, callback_raw=self.myGotRaw,
                               default_callback_error=self.myGotListenerError, local_callback_error=None,
                               user_callback_error=self.myGotError)

        pa_listener.start_heartbeat_timer()

        gevent.sleep((test_max_missed_heartbeats * pa_listener.heartbeat) + 4)

        self.assertFalse(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertTrue(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)
コード例 #2
0
    def test_heartbeat_timeout(self):
        """
        Initialize the Listener with a heartbeat value, then
        start the heartbeat.  Wait long enough for the heartbeat
        to timeout MAX_MISSED_HEARTBEATS times, and then assert
        that the error_callback was called.
        """

        self.resetTestVars()
        test_recovery_attempts = 1
        test_heartbeat = 1
        test_max_missed_heartbeats = 5
        pa_listener = Listener(
            None,
            test_recovery_attempts,
            delim=None,
            heartbeat=test_heartbeat,
            max_missed_heartbeats=test_max_missed_heartbeats,
            callback_data=self.myGotData,
            callback_raw=self.myGotRaw,
            default_callback_error=self.myGotListenerError,
            local_callback_error=None,
            user_callback_error=self.myGotError)

        pa_listener.start_heartbeat_timer()

        gevent.sleep((test_max_missed_heartbeats * pa_listener.heartbeat) + 4)

        self.assertFalse(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertTrue(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)
コード例 #3
0
 def test_heartbeat_timeout(self):
     """
     Initialize the Listener with a heartbeat value, then
     start the heartbeat.  Wait long enough for the heartbeat
     to timeout MAX_MISSED_HEARTBEATS times, and then assert
     that the error_callback was called.
     """
     
     self.resetTestVars()
     test_heartbeat = 1
     test_max_missed_heartbeats = 5
     paListener = Listener(None, None, test_heartbeat, test_max_missed_heartbeats,
                           self.myGotData, self.myGotRaw, self.myGotError)
     
     paListener.start_heartbeat_timer()
     
     gevent.sleep((test_max_missed_heartbeats * paListener.heartbeat) + 4)
     
     self.assertFalse(self.rawCallbackCalled)
     self.assertFalse(self.dataCallbackCalled)
     self.assertTrue(self.errorCallbackCalled)
コード例 #4
0
    def test_set_heartbeat(self):
        """
        Test the set_heart_beat function; make sure it returns False when
        passed invalid values, and true when valid.  Also make sure it
        adds the HEARTBEAT_FUDGE
        """
        self.resetTestVars()
        test_recovery_attempts = 1
        test_heartbeat = 0
        test_max_missed_heartbeats = 5
        pa_listener = Listener(None, test_recovery_attempts, None,
                               test_heartbeat, test_max_missed_heartbeats,
                               self.myGotData, self.myGotRaw,
                               self.myGotListenerError, None, self.myGotError)

        ###
        # Test valid values
        ###
        test_heartbeat = 1
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertTrue(return_value)
        self.assertTrue(pa_listener.heartbeat == test_heartbeat +
                        pa_listener.HEARTBEAT_FUDGE)

        test_heartbeat = pa_listener.MAX_HEARTBEAT_INTERVAL
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertTrue(return_value)
        self.assertTrue(pa_listener.heartbeat == test_heartbeat +
                        pa_listener.HEARTBEAT_FUDGE)

        ###
        # Test that a heartbeat value of zero results in the listener.heartbeat being zero
        # (and doesn't include HEARTBEAT_FUDGE)
        ###
        test_heartbeat = 0
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertTrue(return_value)
        self.assertTrue(pa_listener.heartbeat == test_heartbeat)

        ###
        # Test invalid values
        ###
        test_heartbeat = -1
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertFalse(return_value)

        test_heartbeat = pa_listener.MAX_HEARTBEAT_INTERVAL + 1
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertFalse(return_value)
コード例 #5
0
    def test_set_heartbeat(self):
        """
        Test the set_heart_beat function; make sure it returns False when
        passed invalid values, and true when valid.  Also make sure it
        adds the HEARTBEAT_FUDGE
        """
        self.resetTestVars()
        test_recovery_attempts = 1
        test_heartbeat = 0
        test_max_missed_heartbeats = 5
        pa_listener = Listener(None, test_recovery_attempts, None, test_heartbeat, test_max_missed_heartbeats,
                               self.myGotData, self.myGotRaw, self.myGotListenerError, None, self.myGotError)

        ###
        # Test valid values
        ###
        test_heartbeat = 1
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertTrue(return_value)
        self.assertTrue(pa_listener.heartbeat == test_heartbeat + pa_listener.HEARTBEAT_FUDGE)

        test_heartbeat = pa_listener.MAX_HEARTBEAT_INTERVAL
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertTrue(return_value)
        self.assertTrue(pa_listener.heartbeat == test_heartbeat + pa_listener.HEARTBEAT_FUDGE)

        ###
        # Test that a heartbeat value of zero results in the listener.heartbeat being zero
        # (and doesn't include HEARTBEAT_FUDGE)
        ###
        test_heartbeat = 0
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertTrue(return_value)
        self.assertTrue(pa_listener.heartbeat == test_heartbeat)

        ###
        # Test invalid values
        ###
        test_heartbeat = -1
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertFalse(return_value)

        test_heartbeat = pa_listener.MAX_HEARTBEAT_INTERVAL + 1
        return_value = pa_listener.set_heartbeat(test_heartbeat)
        self.assertFalse(return_value)
コード例 #6
0
    def test_handle_packet(self):
        """
        Test that a default PortAgentPacket creates a DATA_FROM_DRIVER packet,
        and that the handle_packet method invokes the raw callback
        """
        pa_listener = Listener(None, None, 0, 0, 5, self.myGotData, self.myGotRaw, self.myGotListenerError,
                               self.myGotError)

        test_data = "This is a great big test"
        self.resetTestVars()
        pa_packet = PortAgentPacket()
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)

        ###
        # Test DATA_FROM_INSTRUMENT; handle_packet should invoke data and raw
        # callbacks.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.DATA_FROM_INSTRUMENT)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertTrue(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test PORT_AGENT_COMMAND; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.PORT_AGENT_COMMAND)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test PORT_AGENT_STATUS; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.PORT_AGENT_STATUS)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test PORT_AGENT_FAULT; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.PORT_AGENT_FAULT)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test INSTRUMENT_COMMAND; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.DIGI_CMD)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test HEARTBEAT; handle_packet should not invoke any callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.HEARTBEAT)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertFalse(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)
コード例 #7
0
    def test_handle_packet(self):
        """
        Test that a default PortAgentPacket creates a DATA_FROM_DRIVER packet,
        and that the handle_packet method invokes the raw callback
        """
        pa_listener = Listener(None, None, 0, 0, 5, self.myGotData,
                               self.myGotRaw, self.myGotListenerError,
                               self.myGotError)

        test_data = "This is a great big test"
        self.resetTestVars()
        pa_packet = PortAgentPacket()
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)

        ###
        # Test DATA_FROM_INSTRUMENT; handle_packet should invoke data and raw
        # callbacks.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.DATA_FROM_INSTRUMENT)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertTrue(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test PORT_AGENT_COMMAND; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.PORT_AGENT_COMMAND)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test PORT_AGENT_STATUS; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.PORT_AGENT_STATUS)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test PORT_AGENT_FAULT; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.PORT_AGENT_FAULT)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test INSTRUMENT_COMMAND; handle_packet should invoke raw callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.DIGI_CMD)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertTrue(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)

        ###
        # Test HEARTBEAT; handle_packet should not invoke any callback.
        ###
        self.resetTestVars()
        pa_packet = PortAgentPacket(PortAgentPacket.HEARTBEAT)
        pa_packet.attach_data(test_data)
        pa_packet.pack_header()
        pa_packet.verify_checksum()

        pa_listener.handle_packet(pa_packet)

        self.assertFalse(self.rawCallbackCalled)
        self.assertFalse(self.dataCallbackCalled)
        self.assertFalse(self.errorCallbackCalled)
        self.assertFalse(self.listenerCallbackCalled)