def test_search_agents(self): # Setup Expected Response next_page_token = '' agents_element = {} agents = [agents_element] expected_response = { 'next_page_token': next_page_token, 'agents': agents } expected_response = agent_pb2.SearchAgentsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) patch = mock.patch('google.api_core.grpc_helpers.create_channel') with patch as create_channel: create_channel.return_value = channel client = dialogflow_v2beta1.AgentsClient() # Setup Request parent = client.project_path('[PROJECT]') paged_list_response = client.search_agents(parent) resources = list(paged_list_response) assert len(resources) == 1 assert expected_response.agents[0] == resources[0] assert len(channel.requests) == 1 expected_request = agent_pb2.SearchAgentsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request
def test_search_agents(self): # Setup Expected Response next_page_token = '' agents_element = {} agents = [agents_element] expected_response = { 'next_page_token': next_page_token, 'agents': agents } expected_response = agent_pb2.SearchAgentsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) client = dialogflow_v2beta1.AgentsClient(channel=channel) # Setup Request parent = client.project_path('[PROJECT]') paged_list_response = client.search_agents(parent) resources = list(paged_list_response) assert len(resources) == 1 assert expected_response.agents[0] == resources[0] assert len(channel.requests) == 1 expected_request = agent_pb2.SearchAgentsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request
def search_agents( self, parent, page_size=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ Returns the list of agents. Since there is at most one conversational agent per project, this method is useful primarily for listing all agents across projects the caller has access to. One can achieve that with a wildcard project collection id "-". Refer to `List Sub-Collections <https://cloud.google.com/apis/design/design_patterns#list_sub-collections>`__. Example: >>> import dialogflow_v2beta1 >>> >>> client = dialogflow_v2beta1.AgentsClient() >>> >>> parent = client.project_path('[PROJECT]') >>> >>> # Iterate over all results >>> for element in client.search_agents(parent): ... # process element ... pass >>> >>> >>> # Alternatively: >>> >>> # Iterate over results one page at a time >>> for page in client.search_agents(parent).pages: ... for element in page: ... # process element ... pass Args: parent (str): Required. The project to list agents from. Format: ``projects/<Project ID or '-'>``. page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is specified, the timeout applies to each individual attempt. metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. Returns: A :class:`~google.api_core.page_iterator.PageIterator` instance. An iterable of :class:`~google.cloud.dialogflow_v2beta1.types.Agent` instances. You can also iterate over the pages of the response using its `pages` property. Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. google.api_core.exceptions.RetryError: If the request failed due to a retryable error and retry attempts failed. ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. if "search_agents" not in self._inner_api_calls: self._inner_api_calls[ "search_agents"] = google.api_core.gapic_v1.method.wrap_method( self.transport.search_agents, default_retry=self._method_configs["SearchAgents"].retry, default_timeout=self._method_configs["SearchAgents"]. timeout, client_info=self._client_info, ) request = agent_pb2.SearchAgentsRequest(parent=parent, page_size=page_size) if metadata is None: metadata = [] metadata = list(metadata) try: routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( routing_header) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( self._inner_api_calls["search_agents"], retry=retry, timeout=timeout, metadata=metadata, ), request=request, items_field="agents", request_token_field="page_token", response_token_field="next_page_token", ) return iterator
def search_agents(self, parent, page_size=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None): """ Returns the list of agents. Since there is at most one conversational agent per project, this method is useful primarily for listing all agents across projects the caller has access to. One can achieve that with a wildcard project collection id \"-\". Refer to [List Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections). Example: >>> import dialogflow_v2beta1 >>> >>> client = dialogflow_v2beta1.AgentsClient() >>> >>> parent = client.project_path('[PROJECT]') >>> >>> >>> # Iterate over all results >>> for element in client.search_agents(parent): ... # process element ... pass >>> >>> # Or iterate over results one page at a time >>> for page in client.search_agents(parent, options=CallOptions(page_token=INITIAL_PAGE)): ... for element in page: ... # process element ... pass Args: parent (str): Required. The project to list agents from. Format: ``projects/<Project ID or '-'>``. page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is specified, the timeout applies to each individual attempt. metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. Returns: A :class:`~google.gax.PageIterator` instance. By default, this is an iterable of :class:`~dialogflow_v2beta1.types.Agent` instances. This object can also be configured to iterate over the pages of the response through the `options` parameter. Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. google.api_core.exceptions.RetryError: If the request failed due to a retryable error and retry attempts failed. ValueError: If the parameters are invalid. """ if metadata is None: metadata = [] metadata = list(metadata) request = agent_pb2.SearchAgentsRequest( parent=parent, page_size=page_size, ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial(self._search_agents, retry=retry, timeout=timeout, metadata=metadata), request=request, items_field='agents', request_token_field='page_token', response_token_field='next_page_token', ) return iterator