Exemple #1
0
    def test_subscribe(self):
        """Test that a subscriber is successfully validated and added to the
        event broadcaster.
        """

        mock_event_broadcaster = Mock()
        handler = \
            ClientEventsSubscribeValidationHandler(mock_event_broadcaster)
        request = events_pb2.ClientEventsSubscribeRequest(
            subscriptions=[
                events_pb2.EventSubscription(
                    event_type="test_event",
                    filters=[
                        events_pb2.EventFilter(key="test", match_string="test")
                    ],
                )
            ],
            last_known_block_ids=["0" * 128]).SerializeToString()

        response = handler.handle("test_conn_id", request)

        mock_event_broadcaster.add_subscriber.assert_called_with(
            "test_conn_id", [
                EventSubscription(event_type="test_event",
                                  filters=[
                                      FILTER_FACTORY.create(
                                          key="test", match_string="test")
                                  ])
            ], ["0" * 128])
        self.assertEqual(HandlerStatus.RETURN_AND_PASS, response.status)
        self.assertEqual(events_pb2.ClientEventsSubscribeResponse.OK,
                         response.message_out.status)
Exemple #2
0
    def test_subscribe_bad_filter(self):
        """Tests that the handler will respond with an INVALID_FILTER
        when a subscriber provides an invalid filter.
        """
        mock_event_broadcaster = Mock()
        handler = \
            ClientEventsSubscribeValidationHandler(mock_event_broadcaster)
        request = client_event_pb2.ClientEventsSubscribeRequest(
            subscriptions=[
                events_pb2.EventSubscription(
                    event_type="test_event",
                    filters=[
                        events_pb2.EventFilter(
                            key="test",
                            match_string="???",
                            filter_type=events_pb2.EventFilter.REGEX_ANY)
                    ],
                )
            ],
            last_known_block_ids=["0" * 128]).SerializeToString()

        response = handler.handle("test_conn_id", request)

        mock_event_broadcaster.add_subscriber.assert_not_called()
        self.assertEqual(HandlerStatus.RETURN, response.status)
        self.assertEqual(
            client_event_pb2.ClientEventsSubscribeResponse.INVALID_FILTER,
            response.message_out.status)
Exemple #3
0
    def test_subscribe_bad_filter(self):
        """Tests that the handler will respond with an INVALID_FILTER
        when a subscriber provides an invalid filter.
        """
        mock_event_broadcaster = Mock()
        handler = \
            ClientEventsSubscribeValidationHandler(mock_event_broadcaster)
        request = events_pb2.ClientEventsSubscribeRequest(
            subscriptions=[
                events_pb2.EventSubscription(
                    event_type="test_event",
                    filters=[
                        events_pb2.EventFilter(
                            key="test",
                            match_string="???",
                            filter_type=events_pb2.EventFilter.REGEX_ANY)
                    ],
                )
            ],
            last_known_block_ids=["0" * 128]).SerializeToString()

        response = handler.handle("test_conn_id", request)

        mock_event_broadcaster.add_subscriber.assert_not_called()
        self.assertEqual(HandlerStatus.RETURN, response.status)
        self.assertEqual(
            events_pb2.ClientEventsSubscribeResponse.INVALID_FILTER,
            response.message_out.status)
Exemple #4
0
    def test_subscribe(self):
        """Test that a subscriber is successfully validated and added to the
        event broadcaster.
        """

        mock_event_broadcaster = Mock()
        mock_event_broadcaster.get_latest_known_block_id.return_value = \
            "0" * 128
        handler = \
            ClientEventsSubscribeValidationHandler(mock_event_broadcaster)
        request = client_event_pb2.ClientEventsSubscribeRequest(
            subscriptions=[
                events_pb2.EventSubscription(
                    event_type="test_event",
                    filters=[
                        events_pb2.EventFilter(
                            key="test",
                            match_string="test",
                            filter_type=events_pb2.EventFilter.SIMPLE_ANY)
                    ],
                )
            ],
            last_known_block_ids=["0" * 128]).SerializeToString()

        response = handler.handle("test_conn_id", request)

        mock_event_broadcaster.add_subscriber.assert_called_with(
            "test_conn_id",
            [EventSubscription(
                event_type="test_event",
                filters=[
                    FILTER_FACTORY.create(key="test", match_string="test")])],
            "0" * 128)
        self.assertEqual(HandlerStatus.RETURN_AND_PASS, response.status)
        self.assertEqual(client_event_pb2.ClientEventsSubscribeResponse.OK,
                         response.message_out.status)