def test_topic_list_subscriptions_with_paging(self):
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        response = _GAXPageIterator([
            {'name': self.SUB_PATH, 'topic': self.TOPIC_PATH}], NEW_TOKEN)
        gax_api = _GAXPublisherAPI(_list_topic_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.topic_list_subscriptions(
            self.TOPIC_PATH, page_size=SIZE, page_token=TOKEN)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(next_token, NEW_TOKEN)

        name, page_size, options = (
            gax_api._list_topic_subscriptions_called_with)
        self.assertEqual(name, self.TOPIC_PATH)
        self.assertEqual(page_size, SIZE)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 2
0
    def test_list_subscriptions_with_paging(self):
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        response = _GAXPageIterator([
            _SubscriptionPB(self.SUB_PATH, self.TOPIC_PATH, self.PUSH_ENDPOINT,
                            0)
        ], NEW_TOKEN)
        gax_api = _GAXSubscriberAPI(_list_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.list_subscriptions(self.PROJECT,
                                                           page_size=SIZE,
                                                           page_token=TOKEN)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(subscription['pushConfig'],
                         {'pushEndpoint': self.PUSH_ENDPOINT})
        self.assertEqual(subscription['ackDeadlineSeconds'], 0)
        self.assertEqual(next_token, NEW_TOKEN)

        name, page_size, options = gax_api._list_subscriptions_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, 23)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 3
0
    def test_list_sinks_w_paging(self):
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        PAGE_SIZE = 42
        SINKS = [{
            'name': self.SINK_PATH,
            'filter': self.FILTER,
            'destination': self.DESTINATION_URI,
        }]
        response = _GAXPageIterator(
            [_LogSinkPB(self.SINK_PATH, self.DESTINATION_URI, self.FILTER)],
            None)
        gax_api = _GAXSinksAPI(_list_sinks_response=response)
        api = self._makeOne(gax_api)

        sinks, token = api.list_sinks(
            self.PROJECT, page_size=PAGE_SIZE, page_token=TOKEN)

        self.assertEqual(sinks, SINKS)
        self.assertEqual(token, None)

        project, page_size, options = gax_api._list_sinks_called_with
        self.assertEqual(project, self.PROJECT_PATH)
        self.assertEqual(page_size, PAGE_SIZE)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 4
0
    def test_topic_list_subscriptions_with_paging(self):
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        response = _GAXPageIterator([{
            'name': self.SUB_PATH,
            'topic': self.TOPIC_PATH
        }], NEW_TOKEN)
        gax_api = _GAXPublisherAPI(_list_topic_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.topic_list_subscriptions(
            self.TOPIC_PATH, page_size=SIZE, page_token=TOKEN)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(next_token, NEW_TOKEN)

        name, page_size, options = (
            gax_api._list_topic_subscriptions_called_with)
        self.assertEqual(name, self.TOPIC_PATH)
        self.assertEqual(page_size, SIZE)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 5
0
    def test_list_subscriptions_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        response = _GAXPageIterator([
            _SubscriptionPB(self.SUB_PATH, self.TOPIC_PATH, self.PUSH_ENDPOINT,
                            0)
        ], None)
        gax_api = _GAXSubscriberAPI(_list_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.list_subscriptions(self.PROJECT)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(subscription['pushConfig'],
                         {'pushEndpoint': self.PUSH_ENDPOINT})
        self.assertEqual(subscription['ackDeadlineSeconds'], 0)
        self.assertEqual(next_token, None)

        name, page_size, options = gax_api._list_subscriptions_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 6
0
    def test_topic_list_subscriptions_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        response = _GAXPageIterator([{
            'name': self.SUB_PATH,
            'topic': self.TOPIC_PATH
        }], None)
        gax_api = _GAXPublisherAPI(_list_topic_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.topic_list_subscriptions(
            self.TOPIC_PATH)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(next_token, None)

        topic_path, page_size, options = (
            gax_api._list_topic_subscriptions_called_with)
        self.assertEqual(topic_path, self.TOPIC_PATH)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 7
0
    def test_list_entries_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud.logging import DESCENDING
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        TEXT = 'TEXT'
        response = _GAXPageIterator(
            [_LogEntryPB(self.LOG_NAME, text_payload=TEXT)], TOKEN)
        gax_api = _GAXLoggingAPI(_list_log_entries_response=response)
        api = self._makeOne(gax_api)

        entries, next_token = api.list_entries(
            [self.PROJECT], self.FILTER, DESCENDING)

        self.assertEqual(len(entries), 1)
        entry = entries[0]
        self.assertIsInstance(entry, dict)
        self.assertEqual(entry['logName'], self.LOG_NAME)
        self.assertEqual(entry['resource'], {'type': 'global'})
        self.assertEqual(entry['textPayload'], TEXT)
        self.assertEqual(next_token, TOKEN)

        projects, filter_, order_by, page_size, options = (
            gax_api._list_log_entries_called_with)
        self.assertEqual(projects, [self.PROJECT])
        self.assertEqual(filter_, self.FILTER)
        self.assertEqual(order_by, DESCENDING)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 8
0
    def test_list_metrics_w_paging(self):
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        PAGE_SIZE = 42
        METRICS = [{
            'name': self.METRIC_PATH,
            'filter': self.FILTER,
            'description': self.DESCRIPTION,
        }]
        response = _GAXPageIterator(
            [_LogMetricPB(self.METRIC_PATH, self.DESCRIPTION, self.FILTER)],
            None)
        gax_api = _GAXMetricsAPI(_list_log_metrics_response=response)
        api = self._makeOne(gax_api)

        metrics, token = api.list_metrics(
            self.PROJECT, page_size=PAGE_SIZE, page_token=TOKEN)

        self.assertEqual(metrics, METRICS)
        self.assertEqual(token, None)

        project, page_size, options = gax_api._list_log_metrics_called_with
        self.assertEqual(project, self.PROJECT_PATH)
        self.assertEqual(page_size, PAGE_SIZE)
        self.assertEqual(options.page_token, TOKEN)
    def test_list_subscriptions_with_paging(self):
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        response = _GAXPageIterator([_SubscriptionPB(
            self.SUB_PATH, self.TOPIC_PATH, self.PUSH_ENDPOINT, 0)], NEW_TOKEN)
        gax_api = _GAXSubscriberAPI(_list_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.list_subscriptions(
            self.PROJECT, page_size=SIZE, page_token=TOKEN)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(subscription['pushConfig'],
                         {'pushEndpoint': self.PUSH_ENDPOINT})
        self.assertEqual(subscription['ackDeadlineSeconds'], 0)
        self.assertEqual(next_token, NEW_TOKEN)

        name, page_size, options = gax_api._list_subscriptions_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, 23)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 10
0
    def test_list_entries_with_paging(self):
        from google.protobuf.struct_pb2 import Value
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        PAYLOAD = {'message': 'MESSAGE', 'weather': 'sunny'}
        struct_pb = _StructPB(dict([(key, Value(string_value=value))
                                    for key, value in PAYLOAD.items()]))
        response = _GAXPageIterator(
            [_LogEntryPB(self.LOG_NAME, json_payload=struct_pb)], NEW_TOKEN)
        gax_api = _GAXLoggingAPI(_list_log_entries_response=response)
        api = self._makeOne(gax_api)

        entries, next_token = api.list_entries(
            [self.PROJECT], page_size=SIZE, page_token=TOKEN)

        self.assertEqual(len(entries), 1)
        entry = entries[0]
        self.assertIsInstance(entry, dict)
        self.assertEqual(entry['logName'], self.LOG_NAME)
        self.assertEqual(entry['resource'], {'type': 'global'})
        self.assertEqual(entry['jsonPayload'], PAYLOAD)
        self.assertEqual(next_token, NEW_TOKEN)

        projects, filter_, order_by, page_size, options = (
            gax_api._list_log_entries_called_with)
        self.assertEqual(projects, [self.PROJECT])
        self.assertEqual(filter_, '')
        self.assertEqual(order_by, '')
        self.assertEqual(page_size, SIZE)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 11
0
    def test_list_topics_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        response = _GAXPageIterator([_TopicPB(self.TOPIC_PATH)], TOKEN)
        gax_api = _GAXPublisherAPI(_list_topics_response=response)
        api = self._makeOne(gax_api)

        topics, next_token = api.list_topics(self.PROJECT)

        self.assertEqual(len(topics), 1)
        topic = topics[0]
        self.assertIsInstance(topic, dict)
        self.assertEqual(topic['name'], self.TOPIC_PATH)
        self.assertEqual(next_token, TOKEN)

        name, page_size, options = gax_api._list_topics_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 12
0
    def test_list_topics_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        response = _GAXPageIterator([_TopicPB(self.TOPIC_PATH)], TOKEN)
        gax_api = _GAXPublisherAPI(_list_topics_response=response)
        api = self._makeOne(gax_api)

        topics, next_token = api.list_topics(self.PROJECT)

        self.assertEqual(len(topics), 1)
        topic = topics[0]
        self.assertIsInstance(topic, dict)
        self.assertEqual(topic['name'], self.TOPIC_PATH)
        self.assertEqual(next_token, TOKEN)

        name, page_size, options = gax_api._list_topics_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 13
0
    def test_list_topics_with_paging(self):
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        response = _GAXPageIterator([_TopicPB(self.TOPIC_PATH)], NEW_TOKEN)
        gax_api = _GAXPublisherAPI(_list_topics_response=response)
        api = self._makeOne(gax_api)

        topics, next_token = api.list_topics(self.PROJECT,
                                             page_size=SIZE,
                                             page_token=TOKEN)

        self.assertEqual(len(topics), 1)
        topic = topics[0]
        self.assertIsInstance(topic, dict)
        self.assertEqual(topic['name'], self.TOPIC_PATH)
        self.assertEqual(next_token, NEW_TOKEN)

        name, page_size, options = gax_api._list_topics_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, SIZE)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 14
0
    def test_topic_list_subscriptions_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        response = _GAXPageIterator([
            {'name': self.SUB_PATH, 'topic': self.TOPIC_PATH}], None)
        gax_api = _GAXPublisherAPI(_list_topic_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.topic_list_subscriptions(
            self.TOPIC_PATH)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(next_token, None)

        topic_path, page_size, options = (
            gax_api._list_topic_subscriptions_called_with)
        self.assertEqual(topic_path, self.TOPIC_PATH)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 15
0
    def test_list_topics_with_paging(self):
        from gcloud._testing import _GAXPageIterator
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        response = _GAXPageIterator(
            [_TopicPB(self.TOPIC_PATH)], NEW_TOKEN)
        gax_api = _GAXPublisherAPI(_list_topics_response=response)
        api = self._makeOne(gax_api)

        topics, next_token = api.list_topics(
            self.PROJECT, page_size=SIZE, page_token=TOKEN)

        self.assertEqual(len(topics), 1)
        topic = topics[0]
        self.assertIsInstance(topic, dict)
        self.assertEqual(topic['name'], self.TOPIC_PATH)
        self.assertEqual(next_token, NEW_TOKEN)

        name, page_size, options = gax_api._list_topics_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, SIZE)
        self.assertEqual(options.page_token, TOKEN)
Esempio n. 16
0
    def test_list_sinks_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        SINKS = [{
            'name': self.SINK_PATH,
            'filter': self.FILTER,
            'destination': self.DESTINATION_URI,
        }]
        response = _GAXPageIterator(
            [_LogSinkPB(self.SINK_PATH, self.DESTINATION_URI, self.FILTER)],
            TOKEN)
        gax_api = _GAXSinksAPI(_list_sinks_response=response)
        api = self._makeOne(gax_api)

        sinks, token = api.list_sinks(self.PROJECT)

        self.assertEqual(sinks, SINKS)
        self.assertEqual(token, TOKEN)

        project, page_size, options = gax_api._list_sinks_called_with
        self.assertEqual(project, self.PROJECT)
        self.assertEqual(page_size, 0)
        self.assertEqual(options.page_token, INITIAL_PAGE)
Esempio n. 17
0
    def test_list_sinks_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        SINKS = [{
            'name': self.SINK_PATH,
            'filter': self.FILTER,
            'destination': self.DESTINATION_URI,
        }]
        response = _GAXPageIterator(
            [_LogSinkPB(self.SINK_PATH, self.DESTINATION_URI, self.FILTER)],
            TOKEN)
        gax_api = _GAXSinksAPI(_list_sinks_response=response)
        api = self._makeOne(gax_api)

        sinks, token = api.list_sinks(self.PROJECT)

        self.assertEqual(sinks, SINKS)
        self.assertEqual(token, TOKEN)

        project, page_size, options = gax_api._list_sinks_called_with
        self.assertEqual(project, self.PROJECT)
        self.assertEqual(page_size, 0)
        self.assertEqual(options.page_token, INITIAL_PAGE)
Esempio n. 18
0
    def test_list_metrics_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        METRICS = [{
            'name': self.METRIC_PATH,
            'filter': self.FILTER,
            'description': self.DESCRIPTION,
        }]
        response = _GAXPageIterator(
            [_LogMetricPB(self.METRIC_PATH, self.DESCRIPTION, self.FILTER)],
            TOKEN)
        gax_api = _GAXMetricsAPI(_list_log_metrics_response=response)
        api = self._makeOne(gax_api)

        metrics, token = api.list_metrics(self.PROJECT)

        self.assertEqual(metrics, METRICS)
        self.assertEqual(token, TOKEN)

        project, page_size, options = gax_api._list_log_metrics_called_with
        self.assertEqual(project, self.PROJECT)
        self.assertEqual(page_size, 0)
        self.assertEqual(options.page_token, INITIAL_PAGE)
Esempio n. 19
0
    def test_list_metrics_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        TOKEN = 'TOKEN'
        METRICS = [{
            'name': self.METRIC_PATH,
            'filter': self.FILTER,
            'description': self.DESCRIPTION,
        }]
        response = _GAXPageIterator(
            [_LogMetricPB(self.METRIC_PATH, self.DESCRIPTION, self.FILTER)],
            TOKEN)
        gax_api = _GAXMetricsAPI(_list_log_metrics_response=response)
        api = self._makeOne(gax_api)

        metrics, token = api.list_metrics(self.PROJECT)

        self.assertEqual(metrics, METRICS)
        self.assertEqual(token, TOKEN)

        project, page_size, options = gax_api._list_log_metrics_called_with
        self.assertEqual(project, self.PROJECT)
        self.assertEqual(page_size, 0)
        self.assertEqual(options.page_token, INITIAL_PAGE)
Esempio n. 20
0
    def test_list_subscriptions_no_paging(self):
        from google.gax import INITIAL_PAGE
        from gcloud._testing import _GAXPageIterator
        response = _GAXPageIterator([_SubscriptionPB(
            self.SUB_PATH, self.TOPIC_PATH, self.PUSH_ENDPOINT, 0)], None)
        gax_api = _GAXSubscriberAPI(_list_subscriptions_response=response)
        api = self._makeOne(gax_api)

        subscriptions, next_token = api.list_subscriptions(self.PROJECT)

        self.assertEqual(len(subscriptions), 1)
        subscription = subscriptions[0]
        self.assertIsInstance(subscription, dict)
        self.assertEqual(subscription['name'], self.SUB_PATH)
        self.assertEqual(subscription['topic'], self.TOPIC_PATH)
        self.assertEqual(subscription['pushConfig'],
                         {'pushEndpoint': self.PUSH_ENDPOINT})
        self.assertEqual(subscription['ackDeadlineSeconds'], 0)
        self.assertEqual(next_token, None)

        name, page_size, options = gax_api._list_subscriptions_called_with
        self.assertEqual(name, self.PROJECT_PATH)
        self.assertEqual(page_size, 0)
        self.assertTrue(options.page_token is INITIAL_PAGE)
Esempio n. 21
0
    def test_list_entries_with_extra_properties(self):
        from datetime import datetime
        from google.logging.type.log_severity_pb2 import WARNING
        from gcloud._testing import _GAXPageIterator
        from gcloud._helpers import UTC
        from gcloud._helpers import _datetime_to_rfc3339
        from gcloud._helpers import _datetime_to_pb_timestamp
        NOW = datetime.utcnow().replace(tzinfo=UTC)
        SIZE = 23
        TOKEN = 'TOKEN'
        NEW_TOKEN = 'NEW_TOKEN'
        PAYLOAD = {'message': 'MESSAGE', 'weather': 'sunny'}
        SEVERITY = 'WARNING'
        LABELS = {
            'foo': 'bar',
        }
        IID = 'IID'
        request = _HTTPRequestPB()
        operation = _LogEntryOperationPB()
        EXTRAS = {
            'severity': WARNING,
            'labels': LABELS,
            'insert_id': IID,
            'http_request': request,
            'operation': operation,
        }
        ENTRY = _LogEntryPB(self.LOG_NAME, proto_payload=PAYLOAD, **EXTRAS)
        ENTRY.resource.labels['foo'] = 'bar'
        ENTRY.timestamp = _datetime_to_pb_timestamp(NOW)
        response = _GAXPageIterator([ENTRY], NEW_TOKEN)
        gax_api = _GAXLoggingAPI(_list_log_entries_response=response)
        api = self._makeOne(gax_api)

        entries, next_token = api.list_entries(
            [self.PROJECT], page_size=SIZE, page_token=TOKEN)

        self.assertEqual(len(entries), 1)
        entry = entries[0]
        self.assertIsInstance(entry, dict)
        self.assertEqual(entry['logName'], self.LOG_NAME)
        self.assertEqual(entry['resource'],
                         {'type': 'global', 'labels': {'foo': 'bar'}})
        self.assertEqual(entry['protoPayload'], PAYLOAD)
        self.assertEqual(entry['severity'], SEVERITY)
        self.assertEqual(entry['labels'], LABELS)
        self.assertEqual(entry['insertId'], IID)
        self.assertEqual(entry['timestamp'], _datetime_to_rfc3339(NOW))
        EXPECTED_REQUEST = {
            'requestMethod': request.request_method,
            'requestUrl': request.request_url,
            'status': request.status,
            'requestSize': request.request_size,
            'responseSize': request.response_size,
            'referer': request.referer,
            'userAgent': request.user_agent,
            'remoteIp': request.remote_ip,
            'cacheHit': request.cache_hit,
        }
        self.assertEqual(entry['httpRequest'], EXPECTED_REQUEST)
        EXPECTED_OPERATION = {
            'producer': operation.producer,
            'id': operation.id,
            'first': operation.first,
            'last': operation.last,
        }
        self.assertEqual(entry['operation'], EXPECTED_OPERATION)
        self.assertEqual(next_token, NEW_TOKEN)

        projects, filter_, order_by, page_size, options = (
            gax_api._list_log_entries_called_with)
        self.assertEqual(projects, [self.PROJECT])
        self.assertEqual(filter_, '')
        self.assertEqual(order_by, '')
        self.assertEqual(page_size, SIZE)
        self.assertEqual(options.page_token, TOKEN)