def _get_events(self, block_id, subscriptions): request = client_event_pb2.ClientEventsGetRequest( block_ids=[block_id], subscriptions=subscriptions) response = self.stream.send( validator_pb2.Message.CLIENT_EVENTS_GET_REQUEST, request.SerializeToString()).result() return response
def test_get_events_by_block_id(self): """Tests that the correct events are returned by the ClientEventsGetRequest handler for each block id. """ event_broadcaster = EventBroadcaster( Mock(), block_store=self.block_store, receipt_store=self.receipt_store) for block_id, _ in self._txn_ids_by_block_id.items(): request = client_event_pb2.ClientEventsGetRequest() request.block_ids.extend([block_id]) subscription = request.subscriptions.add() subscription.event_type = "sawtooth/block-commit" event_filter = subscription.filters.add() event_filter.key = "address" event_filter.match_string = block_id event_filter.filter_type = event_filter.SIMPLE_ALL event_filter2 = subscription.filters.add() event_filter2.key = "block_id" event_filter2.match_string = block_id event_filter2.filter_type = event_filter2.SIMPLE_ALL handler = ClientEventsGetRequestHandler(event_broadcaster) handler_output = handler.handle( "dummy_conn_id", request.SerializeToString()) self.assertEqual(handler_output.message_type, validator_pb2.Message.CLIENT_EVENTS_GET_RESPONSE) self.assertEqual(handler_output.status, HandlerStatus.RETURN) self.assertTrue( all(any(a.value == block_id for a in e.attributes) for e in handler_output.message_out.events), "Each Event has at least one attribute value that is the" " block id for the block.") self.assertEqual(handler_output.message_out.status, client_event_pb2.ClientEventsGetResponse.OK) self.assertTrue(len(handler_output.message_out.events) > 0)