Index: third_party/gsutil/third_party/apitools/apitools/base/py/list_pager_test.py |
diff --git a/third_party/gsutil/third_party/apitools/apitools/base/py/list_pager_test.py b/third_party/gsutil/third_party/apitools/apitools/base/py/list_pager_test.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a98372f49aade439fc69315ce80c6d4d12ec6b0b |
--- /dev/null |
+++ b/third_party/gsutil/third_party/apitools/apitools/base/py/list_pager_test.py |
@@ -0,0 +1,188 @@ |
+"""Tests for list_pager.""" |
+ |
+import unittest2 |
+ |
+from apitools.base.py import list_pager |
+from apitools.base.py.testing import mock |
+from apitools.base.py.testing import testclient as fusiontables |
+ |
+ |
+class ListPagerTest(unittest2.TestCase): |
+ |
+ def _AssertInstanceSequence(self, results, n): |
+ counter = 0 |
+ for instance in results: |
+ self.assertEqual(instance.name, 'c' + str(counter)) |
+ counter += 1 |
+ |
+ self.assertEqual(counter, n) |
+ |
+ def setUp(self): |
+ self.mocked_client = mock.Client(fusiontables.FusiontablesV1) |
+ self.mocked_client.Mock() |
+ self.addCleanup(self.mocked_client.Unmock) |
+ |
+ def testYieldFromList(self): |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken=None, |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList( |
+ items=[ |
+ fusiontables.Column(name='c0'), |
+ fusiontables.Column(name='c1'), |
+ fusiontables.Column(name='c2'), |
+ fusiontables.Column(name='c3'), |
+ ], |
+ nextPageToken='x', |
+ )) |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken='x', |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList( |
+ items=[ |
+ fusiontables.Column(name='c4'), |
+ fusiontables.Column(name='c5'), |
+ fusiontables.Column(name='c6'), |
+ fusiontables.Column(name='c7'), |
+ ], |
+ )) |
+ |
+ client = fusiontables.FusiontablesV1(get_credentials=False) |
+ request = fusiontables.FusiontablesColumnListRequest(tableId='mytable') |
+ results = list_pager.YieldFromList(client.column, request) |
+ |
+ self._AssertInstanceSequence(results, 8) |
+ |
+ def testYieldNoRecords(self): |
+ client = fusiontables.FusiontablesV1(get_credentials=False) |
+ request = fusiontables.FusiontablesColumnListRequest(tableId='mytable') |
+ results = list_pager.YieldFromList(client.column, request, limit=False) |
+ self.assertEqual(0, len(list(results))) |
+ |
+ def testYieldFromListPartial(self): |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken=None, |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList( |
+ items=[ |
+ fusiontables.Column(name='c0'), |
+ fusiontables.Column(name='c1'), |
+ fusiontables.Column(name='c2'), |
+ fusiontables.Column(name='c3'), |
+ ], |
+ nextPageToken='x', |
+ )) |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken='x', |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList( |
+ items=[ |
+ fusiontables.Column(name='c4'), |
+ fusiontables.Column(name='c5'), |
+ fusiontables.Column(name='c6'), |
+ fusiontables.Column(name='c7'), |
+ ], |
+ )) |
+ |
+ client = fusiontables.FusiontablesV1(get_credentials=False) |
+ request = fusiontables.FusiontablesColumnListRequest(tableId='mytable') |
+ results = list_pager.YieldFromList(client.column, request, limit=6) |
+ |
+ self._AssertInstanceSequence(results, 6) |
+ |
+ def testYieldFromListEmpty(self): |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken=None, |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList()) |
+ |
+ client = fusiontables.FusiontablesV1(get_credentials=False) |
+ request = fusiontables.FusiontablesColumnListRequest(tableId='mytable') |
+ results = list_pager.YieldFromList(client.column, request, limit=6) |
+ |
+ self._AssertInstanceSequence(results, 0) |
+ |
+ def testYieldFromListWithPredicate(self): |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken=None, |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList( |
+ items=[ |
+ fusiontables.Column(name='c0'), |
+ fusiontables.Column(name='bad0'), |
+ fusiontables.Column(name='c1'), |
+ fusiontables.Column(name='bad1'), |
+ ], |
+ nextPageToken='x', |
+ )) |
+ self.mocked_client.column.List.Expect( |
+ fusiontables.FusiontablesColumnListRequest( |
+ maxResults=100, |
+ pageToken='x', |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnList( |
+ items=[ |
+ fusiontables.Column(name='c2'), |
+ ], |
+ )) |
+ |
+ client = fusiontables.FusiontablesV1(get_credentials=False) |
+ request = fusiontables.FusiontablesColumnListRequest(tableId='mytable') |
+ results = list_pager.YieldFromList( |
+ client.column, request, predicate=lambda x: 'c' in x.name) |
+ |
+ self._AssertInstanceSequence(results, 3) |
+ |
+ def testYieldFromListWithAttributes(self): |
+ self.mocked_client.columnalternate.List.Expect( |
+ fusiontables.FusiontablesColumnListAlternateRequest( |
+ pageSize=100, |
+ pageToken=None, |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnListAlternate( |
+ columns=[ |
+ fusiontables.Column(name='c0'), |
+ fusiontables.Column(name='c1'), |
+ ], |
+ nextPageToken='x', |
+ )) |
+ self.mocked_client.columnalternate.List.Expect( |
+ fusiontables.FusiontablesColumnListAlternateRequest( |
+ pageSize=100, |
+ pageToken='x', |
+ tableId='mytable', |
+ ), |
+ fusiontables.ColumnListAlternate( |
+ columns=[ |
+ fusiontables.Column(name='c2'), |
+ ], |
+ )) |
+ |
+ client = fusiontables.FusiontablesV1(get_credentials=False) |
+ request = fusiontables.FusiontablesColumnListAlternateRequest( |
+ tableId='mytable') |
+ results = list_pager.YieldFromList( |
+ client.columnalternate, request, |
+ batch_size_attribute='pageSize', field='columns') |
+ |
+ self._AssertInstanceSequence(results, 3) |