コード例 #1
0
    def test_call_1(self):
        """ Test if the sessions call handler is called when an unidirectional call packet is
        received.
        """

        conn = MockedConnection()
        chan = Channel(conn)

        conn.mock_connection_ready(True)

        session = chan.session('name')
        handler = Mock()
        session.add_call_handler(handler)

        conn.mock_downstream_verb(verbs.CallVerb(
            unidirectional=False,
            postref=1,
            name=b'name',
            payload=b'payload',
        ))

        self.__verify_handler_call(
            handler,
            Call,
            unidirectional=False,
            name='name',
            postref=1,
            payload='payload',
        )
コード例 #2
0
    def test_interest_2(self):
        """ Test if the sessions interest handler is called when an interest packet is received.
        """

        conn = MockedConnection()
        chan = Channel(conn)

        conn.mock_connection_ready(True)

        session = chan.session('name')
        handler = Mock()
        session.add_interest_handler(handler)

        conn.mock_downstream_verb(verbs.InterestVerb(
            postref=1,
            name=b'name',
            status=verbs.InterestVerb.STATUS_NO_INTEREST,
            topic=b'topic'
        ))

        self.__verify_handler_call(
            handler,
            Interest,
            status=InterestStatus.NO_INTEREST,
            name='name',
            topic='topic',
            source=session,
        )
コード例 #3
0
    def test_message_timeout_1(self):
        """ Test if a response message to a request results in the handler being called correctly.
        """

        conn = MockedConnection()
        chan = Channel(conn)

        conn.mock_connection_ready(True)

        req = chan.request('name', 'payload')
        handler = Mock()
        req.add_handler(handler, MessageStatus.ANY)
        reqi = req.send()

        conn.mock_downstream_verb(verbs.MessageVerb(
            messageref=1,
            status=verbs.MessageVerb.STATUS_TIMEOUT,
            payload=b'response'
        ))

        self.__verify_handler_call(
            handler,
            Message,
            status=MessageStatus.TIMEOUT,
            payload=None,
            source=reqi,
        )
コード例 #4
0
    def test_session_verb_logging_3(self):
        conn = MockedConnection()
        chan = Channel(conn)

        with self.assertLogs(channel.logger, level='INFO'):
            conn.mock_downstream_verb(verbs.SessionVerb(
                name=b'name',
                state=verbs.SessionVerb.STATE_ENDED,
            ))
コード例 #5
0
    def test_subscribe_message_1(self):
        """ Test that the handler is called when a message is received for a subscription.
        """

        conn = MockedConnection()
        chan = Channel(conn)

        conn.mock_connection_ready(True)

        handler = unittest.mock.Mock()
        sub = chan.subscribe('name', 'topic')
        sub.add_handler(handler)

        conn.mock_downstream_verb(verbs.MessageVerb(
            messageref=1,
            status=verbs.MessageVerb.STATUS_OK,
            payload=b'payload1',
        ))

        self.__verify_handler_call(
            handler,
            Message,
            status=MessageStatus.OK,
            payload='payload1',
        )

        conn.mock_downstream_verb(verbs.MessageVerb(
            messageref=1,
            status=verbs.MessageVerb.STATUS_OK,
            payload=b'payload2',
        ))

        self.__verify_handler_call(
            handler,
            Message,
            status=MessageStatus.OK,
            payload='payload2',
        )
コード例 #6
0
    def test_interest_connection_lost_1(self):
        """ Test if the interest is lost when the connection is lost.
        """

        conn = MockedConnection()
        chan = Channel(conn)

        conn.mock_connection_ready(True)

        session = chan.session('name')
        handler = Mock()
        session.add_interest_handler(handler)

        conn.mock_downstream_verb(verbs.InterestVerb(
            postref=1,
            name=b'name',
            status=verbs.InterestVerb.STATUS_INTEREST,
            topic=b'topic'
        ))

        self.__verify_handler_call(
            handler,
            Interest,
            status=InterestStatus.INTEREST,
            topic='topic',
            source=session,
        )

        conn.mock_connection_ready(False)

        self.__verify_handler_call(
            handler,
            Interest,
            status=InterestStatus.NO_INTEREST,
            topic='topic',
            source=session,
        )