def testYieldFromListWithPredicate(self): self.mocked_client.column.List.Expect( messages.FusiontablesColumnListRequest( maxResults=100, pageToken=None, tableId='mytable', ), messages.ColumnList( items=[ messages.Column(name='c0'), messages.Column(name='bad0'), messages.Column(name='c1'), messages.Column(name='bad1'), ], nextPageToken='x', )) self.mocked_client.column.List.Expect( messages.FusiontablesColumnListRequest( maxResults=100, pageToken='x', tableId='mytable', ), messages.ColumnList( items=[ messages.Column(name='c2'), ], )) client = fusiontables.FusiontablesV1(get_credentials=False) request = messages.FusiontablesColumnListRequest(tableId='mytable') results = list_pager.YieldFromList( client.column, request, predicate=lambda x: 'c' in x.name) self._AssertInstanceSequence(results, 3)
def testMockHasOverrideHttpProperty(self): real_client = fusiontables.FusiontablesV1(url='http://localhost:8080', http='SomeHttpObject', get_credentials=False) with mock.Client(fusiontables.FusiontablesV1, real_client) as mock_client: self.assertEquals('SomeHttpObject', mock_client.http)
def testMockFusionOrder(self): with mock.Client(fusiontables.FusiontablesV1) as client_class: client_class.column.List.Expect(request=1, response=2) client_class.column.List.Expect(request=2, response=1) client = fusiontables.FusiontablesV1(get_credentials=False) self.assertEqual(client.column.List(1), 2) self.assertEqual(client.column.List(2), 1)
def testRequestMacher(self): class Matcher(object): def __init__(self, eq): self._eq = eq def __eq__(self, other): return self._eq(other) with mock.Client(fusiontables.FusiontablesV1) as client_class: def IsEven(x): return x % 2 == 0 def IsOdd(x): return not IsEven(x) client_class.column.List.Expect(request=Matcher(IsEven), response=1, enable_type_checking=False) client_class.column.List.Expect(request=Matcher(IsOdd), response=2, enable_type_checking=False) client_class.column.List.Expect(request=Matcher(IsEven), response=3, enable_type_checking=False) client_class.column.List.Expect(request=Matcher(IsOdd), response=4, enable_type_checking=False) client = fusiontables.FusiontablesV1(get_credentials=False) self.assertEqual(client.column.List(2), 1) self.assertEqual(client.column.List(1), 2) self.assertEqual(client.column.List(20), 3) self.assertEqual(client.column.List(23), 4)
def testMockFusionTooFew(self): with self.assertRaises(mock.ExpectedRequestsException): with mock.Client(fusiontables.FusiontablesV1) as client_class: client_class.column.List.Expect(request=1, response=2) client_class.column.List.Expect(request=2, response=1) client = fusiontables.FusiontablesV1(get_credentials=False) self.assertEqual(client.column.List(1), 2)
def testYieldFromListPartial(self): self.mocked_client.column.List.Expect( messages.FusiontablesColumnListRequest( maxResults=100, pageToken=None, tableId='mytable', ), messages.ColumnList( items=[ messages.Column(name='c0'), messages.Column(name='c1'), messages.Column(name='c2'), messages.Column(name='c3'), ], nextPageToken='x', )) self.mocked_client.column.List.Expect( messages.FusiontablesColumnListRequest( maxResults=100, pageToken='x', tableId='mytable', ), messages.ColumnList(items=[ messages.Column(name='c4'), messages.Column(name='c5'), messages.Column(name='c6'), messages.Column(name='c7'), ], )) client = fusiontables.FusiontablesV1(get_credentials=False) request = messages.FusiontablesColumnListRequest(tableId='mytable') results = list_pager.YieldFromList(client.column, request, limit=6) self._AssertInstanceSequence(results, 6)
def testMockFusionException(self): with mock.Client(fusiontables.FusiontablesV1) as client_class: client_class.column.List.Expect(request=1, exception=exceptions.HttpError( {'status': 404}, '', '')) client = fusiontables.FusiontablesV1(get_credentials=False) with self.assertRaises(exceptions.HttpError): client.column.List(1)
def testMockFusionBasic(self): with mock.Client(fusiontables.FusiontablesV1) as client_class: client_class.column.List.Expect( request=1, response=2, enable_type_checking=False) client = fusiontables.FusiontablesV1(get_credentials=False) self.assertEqual(client.column.List(1), 2) with self.assertRaises(mock.UnexpectedRequestException): client.column.List(3)
def testMockFusionTypeChecking(self): with mock.Client(fusiontables.FusiontablesV1) as client_class: messages = client_class.MESSAGES_MODULE client_class.column.List.Expect( messages.FusiontablesColumnListRequest(tableId='foo'), messages.ColumnList(items=[], totalItems=0)) client = fusiontables.FusiontablesV1(get_credentials=False) self.assertEqual( client.column.List( messages.FusiontablesColumnListRequest(tableId='foo')), messages.ColumnList(items=[], totalItems=0))
def testYieldFromListEmpty(self): self.mocked_client.column.List.Expect( messages.FusiontablesColumnListRequest( maxResults=100, pageToken=None, tableId='mytable', ), messages.ColumnList()) client = fusiontables.FusiontablesV1(get_credentials=False) request = messages.FusiontablesColumnListRequest(tableId='mytable') results = list_pager.YieldFromList(client.column, request, limit=6) self._AssertInstanceSequence(results, 0)
def testYieldFromListWithCustomGetFieldFunction(self): self.mocked_client.column.List.Expect( messages.FusiontablesColumnListRequest( maxResults=100, pageToken=None, tableId='mytable', ), messages.ColumnList(items=[messages.Column(name='c0')])) custom_getter_called = [] def Custom_Getter(message, attribute): custom_getter_called.append(True) return getattr(message, attribute) client = fusiontables.FusiontablesV1(get_credentials=False) request = messages.FusiontablesColumnListRequest(tableId='mytable') results = list_pager.YieldFromList(client.column, request, get_field_func=Custom_Getter) self._AssertInstanceSequence(results, 1) self.assertEquals(1, len(custom_getter_called))
def testYieldNoRecords(self): client = fusiontables.FusiontablesV1(get_credentials=False) request = messages.FusiontablesColumnListRequest(tableId='mytable') results = list_pager.YieldFromList(client.column, request, limit=False) self.assertEqual(0, len(list(results)))
def testFusionUnmock(self): with mock.Client(fusiontables.FusiontablesV1): client = fusiontables.FusiontablesV1(get_credentials=False) mocked_service_type = type(client.column) client = fusiontables.FusiontablesV1(get_credentials=False) self.assertNotEqual(type(client.column), mocked_service_type)