示例#1
0
 def StreamingPull(
     self,
     request_iterator: Iterator[pubsub_pb2.StreamingPullRequest],
     context: grpc.ServicerContext,
 ):  # noqa: D403
     """StreamingPull implementation."""
     for request in request_iterator:
         self.logger.debug("StreamingPull(%.100s)", LazyFormat(request))
         if request.ack_ids:
             self.Acknowledge(
                 pubsub_pb2.AcknowledgeRequest(
                     subscription=request.subscription, ack_ids=request.ack_ids
                 ),
                 context,
             )
         if request.modify_deadline_seconds:
             for ack_id, seconds in zip(
                 request.modify_deadline_ack_ids, request.modify_deadline_seconds
             ):
                 self.ModifyAckDeadline(
                     pubsub_pb2.ModifyAckDeadlineRequest(
                         subscription=request.subscription,
                         ack_ids=[ack_id],
                         seconds=seconds,
                     ),
                     context,
                 )
         yield pubsub_pb2.StreamingPullResponse(
             received_messages=self.Pull(
                 pubsub_pb2.PullRequest(
                     subscription=request.subscription, max_messages=100
                 ),
                 context,
             ).received_messages
         )
    def test_acknowledge(self):
        channel = ChannelStub()
        client = subscriber_client.SubscriberClient(channel=channel)

        # Setup Request
        subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]')
        ack_ids = []

        client.acknowledge(subscription, ack_ids)

        assert len(channel.requests) == 1
        expected_request = pubsub_pb2.AcknowledgeRequest(
            subscription=subscription, ack_ids=ack_ids)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
示例#3
0
    def test_acknowledge(self):
        channel = ChannelStub()
        patch = mock.patch('google.api_core.grpc_helpers.create_channel')
        with patch as create_channel:
            create_channel.return_value = channel
            client = subscriber_client.SubscriberClient()

        # Setup Request
        subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]')
        ack_ids = []

        client.acknowledge(subscription, ack_ids)

        assert len(channel.requests) == 1
        expected_request = pubsub_pb2.AcknowledgeRequest(
            subscription=subscription, ack_ids=ack_ids)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request