From 973532038ea21720f32e7965e609905dcfaace97 Mon Sep 17 00:00:00 2001 From: Jon Wayne Parrott Date: Wed, 9 Aug 2017 10:02:05 -0700 Subject: [PATCH] Move google.cloud.iterator to google.api.core.page_iterator (#3770) * Move google.cloud.iterator to google.api.core.page_iterator * Re-write tests to pytest style. * Make GAXIterator private- it will soon be removed. * Pass api_request into HTTPIterator to avoid accessing private members * BigQuery: use google.api.core.page_iterator * DNS: use google.api.core.page_iterator * Logging: use google.api.core.page_iterator * PubSub: use google.api.core.page_iterator * Resource manager: use google.api.core.page_iterator * Runtimeconfig: use google.api.core.page_iterator * logging: use google.api.core._GAXIterator * Storage: use google.api.core.page_iterator * Pubsub: use google.api.core._GAXIterator * Trace: use google.api.core._GAXIterator * Spanner: use google.api.core._GAXIterator --- .../google/cloud/resource_manager/client.py | 16 ++++++++++------ .../tests/unit/test_client.py | 8 ++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/google-cloud-resource-manager/google/cloud/resource_manager/client.py b/packages/google-cloud-resource-manager/google/cloud/resource_manager/client.py index 90f187735974..2a4ff91daf21 100644 --- a/packages/google-cloud-resource-manager/google/cloud/resource_manager/client.py +++ b/packages/google-cloud-resource-manager/google/cloud/resource_manager/client.py @@ -15,8 +15,8 @@ """A Client for interacting with the Resource Manager API.""" +from google.api.core import page_iterator from google.cloud.client import Client as BaseClient -from google.cloud.iterator import HTTPIterator from google.cloud.resource_manager._http import Connection from google.cloud.resource_manager.project import Project @@ -151,7 +151,7 @@ def list_projects(self, filter_params=None, page_size=None): single page. If not passed, defaults to a value set by the API. - :rtype: :class:`~google.cloud.iterator.Iterator` + :rtype: :class:`~google.api.core.page_iterator.Iterator` :returns: Iterator of all :class:`~google.cloud.resource_manager.project.Project`. that the current user has access to. @@ -164,15 +164,19 @@ def list_projects(self, filter_params=None, page_size=None): if filter_params is not None: extra_params['filter'] = filter_params - return HTTPIterator( - client=self, path='/projects', item_to_value=_item_to_project, - items_key='projects', extra_params=extra_params) + return page_iterator.HTTPIterator( + client=self, + api_request=self._connection.api_request, + path='/projects', + item_to_value=_item_to_project, + items_key='projects', + extra_params=extra_params) def _item_to_project(iterator, resource): """Convert a JSON project to the native object. - :type iterator: :class:`~google.cloud.iterator.Iterator` + :type iterator: :class:`~google.api.core.page_iterator.Iterator` :param iterator: The iterator that has retrieved the item. :type resource: dict diff --git a/packages/google-cloud-resource-manager/tests/unit/test_client.py b/packages/google-cloud-resource-manager/tests/unit/test_client.py index 1ba312775f17..06ac02cbe627 100644 --- a/packages/google-cloud-resource-manager/tests/unit/test_client.py +++ b/packages/google-cloud-resource-manager/tests/unit/test_client.py @@ -88,7 +88,7 @@ def test_fetch_project(self): self.assertEqual(project.labels, labels) def test_list_projects_return_type(self): - from google.cloud.iterator import HTTPIterator + from google.api.core import page_iterator credentials = _make_credentials() client = self._make_one(credentials=credentials) @@ -96,7 +96,7 @@ def test_list_projects_return_type(self): client._connection = _Connection({}) results = client.list_projects() - self.assertIsInstance(results, HTTPIterator) + self.assertIsInstance(results, page_iterator.HTTPIterator) def test_list_projects_no_paging(self): credentials = _make_credentials() @@ -227,12 +227,12 @@ def test_list_projects_with_filter(self): }) def test_page_empty_response(self): - from google.cloud.iterator import Page + from google.api.core import page_iterator credentials = _make_credentials() client = self._make_one(credentials=credentials) iterator = client.list_projects() - page = Page(iterator, (), None) + page = page_iterator.Page(iterator, (), None) iterator._page = page self.assertEqual(page.num_items, 0) self.assertEqual(page.remaining, 0)