Skip to content

Commit

Permalink
Remove use of deprecated 'channel' argument. (#6271)
Browse files Browse the repository at this point in the history
Instead, just use mocks and a custom iterator to bypass the underlying
GAPIC client altogether.
  • Loading branch information
tseaver committed Oct 24, 2018
1 parent 5fd0ff8 commit 372bad1
Showing 1 changed file with 21 additions and 13 deletions.
34 changes: 21 additions & 13 deletions firestore/tests/unit/test_document.py
Original file line number Diff line number Diff line change
Expand Up @@ -519,19 +519,28 @@ def test_get_not_found(self):
[document], field_paths=field_paths, transaction=None)

def _collections_helper(self, page_size=None):
from google.api_core import grpc_helpers
from google.api_core.page_iterator import Iterator
from google.api_core.page_iterator import Page
from google.cloud.firestore_v1beta1.collection import (
CollectionReference)
from google.cloud.firestore_v1beta1.gapic.firestore_client import (
FirestoreClient)
from google.cloud.firestore_v1beta1.proto import firestore_pb2

class _Iterator(Iterator):

def __init__(self, pages):
super(_Iterator, self).__init__(client=None)
self._pages = pages

def _next_page(self):
if self._pages:
page, self._pages = self._pages[0], self._pages[1:]
return Page(self, page, self.item_to_value)

collection_ids = ['coll-1', 'coll-2']
list_coll_response = firestore_pb2.ListCollectionIdsResponse(
collection_ids=collection_ids)
channel = grpc_helpers.ChannelStub()
api_client = FirestoreClient(channel=channel)
channel.ListCollectionIds.response = list_coll_response
iterator = _Iterator(pages=[collection_ids])
api_client = mock.create_autospec(FirestoreClient)
api_client.list_collection_ids.return_value = iterator

client = _make_client()
client._firestore_api_internal = api_client
Expand All @@ -550,12 +559,11 @@ def _collections_helper(self, page_size=None):
self.assertEqual(collection.parent, document)
self.assertEqual(collection.id, collection_id)

request, = channel.ListCollectionIds.requests
self.assertEqual(request.parent, document._document_path)
if page_size is None:
self.assertEqual(request.page_size, 0)
else:
self.assertEqual(request.page_size, page_size)
api_client.list_collection_ids.assert_called_once_with(
document._document_path,
page_size=page_size,
metadata=client._rpc_metadata,
)

def test_collections_wo_page_size(self):
self._collections_helper()
Expand Down

0 comments on commit 372bad1

Please sign in to comment.