From 830e4190706d4e1a9b1d484e63a969e79592ae01 Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Tue, 17 May 2016 16:09:11 -0400 Subject: [PATCH 01/10] Drop ':undoc-members:' from API docs. --- docs/bigquery-client.rst | 2 -- docs/bigquery-dataset.rst | 1 - docs/bigquery-job.rst | 1 - docs/bigquery-query.rst | 1 - docs/bigquery-table.rst | 1 - docs/bigtable-client.rst | 1 - docs/bigtable-cluster.rst | 1 - docs/bigtable-column-family.rst | 1 - docs/bigtable-row-data.rst | 1 - docs/bigtable-row-filters.rst | 1 - docs/bigtable-row.rst | 1 - docs/bigtable-table.rst | 1 - docs/datastore-batches.rst | 1 - docs/datastore-client.rst | 2 -- docs/datastore-entities.rst | 1 - docs/datastore-helpers.rst | 1 - docs/datastore-keys.rst | 1 - docs/datastore-queries.rst | 1 - docs/datastore-transactions.rst | 1 - docs/dns-changes.rst | 1 - docs/dns-client.rst | 2 -- docs/dns-resource-record-set.rst | 1 - docs/dns-zone.rst | 1 - docs/gcloud-api.rst | 5 ----- docs/happybase-batch.rst | 1 - docs/happybase-connection.rst | 1 - docs/happybase-package.rst | 1 - docs/happybase-pool.rst | 1 - docs/happybase-table.rst | 1 - docs/logging-client.rst | 2 -- docs/logging-entries.rst | 1 - docs/logging-logger.rst | 1 - docs/logging-metric.rst | 1 - docs/logging-sink.rst | 1 - docs/monitoring-client.rst | 2 -- docs/monitoring-label.rst | 1 - docs/monitoring-metric.rst | 1 - docs/monitoring-query.rst | 1 - docs/monitoring-resource.rst | 1 - docs/monitoring-timeseries.rst | 1 - docs/pubsub-client.rst | 2 -- docs/pubsub-iam.rst | 1 - docs/pubsub-message.rst | 1 - docs/pubsub-subscription.rst | 1 - docs/pubsub-topic.rst | 1 - docs/resource-manager-client.rst | 2 -- docs/resource-manager-project.rst | 1 - docs/storage-acl.rst | 1 - docs/storage-batch.rst | 1 - docs/storage-blobs.rst | 1 - docs/storage-buckets.rst | 1 - docs/storage-client.rst | 2 -- 52 files changed, 64 deletions(-) diff --git a/docs/bigquery-client.rst b/docs/bigquery-client.rst index 94c3c4139f6b6..2dbb17c02ed90 100644 --- a/docs/bigquery-client.rst +++ b/docs/bigquery-client.rst @@ -3,7 +3,6 @@ BigQuery Client .. automodule:: gcloud.bigquery.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,5 +10,4 @@ Connection .. automodule:: gcloud.bigquery.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigquery-dataset.rst b/docs/bigquery-dataset.rst index 9c00c733866b1..7ea68c97c4e81 100644 --- a/docs/bigquery-dataset.rst +++ b/docs/bigquery-dataset.rst @@ -3,5 +3,4 @@ Datasets .. automodule:: gcloud.bigquery.dataset :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigquery-job.rst b/docs/bigquery-job.rst index ce24a0adb01c4..3af44e9da0a36 100644 --- a/docs/bigquery-job.rst +++ b/docs/bigquery-job.rst @@ -3,5 +3,4 @@ Jobs .. automodule:: gcloud.bigquery.job :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigquery-query.rst b/docs/bigquery-query.rst index b161c8da0c87d..7359647253271 100644 --- a/docs/bigquery-query.rst +++ b/docs/bigquery-query.rst @@ -3,5 +3,4 @@ Query .. automodule:: gcloud.bigquery.query :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigquery-table.rst b/docs/bigquery-table.rst index c47a554a69672..63297bb471fde 100644 --- a/docs/bigquery-table.rst +++ b/docs/bigquery-table.rst @@ -3,5 +3,4 @@ Tables .. automodule:: gcloud.bigquery.table :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigtable-client.rst b/docs/bigtable-client.rst index b765144a160d6..fb2d9cec88e47 100644 --- a/docs/bigtable-client.rst +++ b/docs/bigtable-client.rst @@ -3,5 +3,4 @@ Client .. automodule:: gcloud.bigtable.client :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigtable-cluster.rst b/docs/bigtable-cluster.rst index 9b88f2059d146..9c5276dc462a5 100644 --- a/docs/bigtable-cluster.rst +++ b/docs/bigtable-cluster.rst @@ -3,5 +3,4 @@ Cluster .. automodule:: gcloud.bigtable.cluster :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigtable-column-family.rst b/docs/bigtable-column-family.rst index b51d7a18e4ee9..6539e0230d159 100644 --- a/docs/bigtable-column-family.rst +++ b/docs/bigtable-column-family.rst @@ -46,5 +46,4 @@ at the lowest level of the nesting: .. automodule:: gcloud.bigtable.column_family :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigtable-row-data.rst b/docs/bigtable-row-data.rst index 5ec98f932d1d5..3564f4e7a4b49 100644 --- a/docs/bigtable-row-data.rst +++ b/docs/bigtable-row-data.rst @@ -3,5 +3,4 @@ Row Data .. automodule:: gcloud.bigtable.row_data :members: - :undoc-members: :show-inheritance: diff --git a/docs/bigtable-row-filters.rst b/docs/bigtable-row-filters.rst index b5e99eab65758..9796a4c272395 100644 --- a/docs/bigtable-row-filters.rst +++ b/docs/bigtable-row-filters.rst @@ -62,7 +62,6 @@ level. For example: .. automodule:: gcloud.bigtable.row_filters :members: - :undoc-members: :show-inheritance: .. _RowFilter definition: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/1ff247c2e3b7cd0a2dd49071b2d95beaf6563092/bigtable-protos/src/main/proto/google/bigtable/v1/bigtable_data.proto#L195 diff --git a/docs/bigtable-row.rst b/docs/bigtable-row.rst index ae9835995bda0..afb52f39782bc 100644 --- a/docs/bigtable-row.rst +++ b/docs/bigtable-row.rst @@ -3,6 +3,5 @@ Bigtable Row .. automodule:: gcloud.bigtable.row :members: - :undoc-members: :show-inheritance: :inherited-members: diff --git a/docs/bigtable-table.rst b/docs/bigtable-table.rst index 03ca332f9c9ad..93704aae5d3a3 100644 --- a/docs/bigtable-table.rst +++ b/docs/bigtable-table.rst @@ -3,5 +3,4 @@ Table .. automodule:: gcloud.bigtable.table :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-batches.rst b/docs/datastore-batches.rst index 49527a9fe4951..bf7d5c4ffbcc7 100644 --- a/docs/datastore-batches.rst +++ b/docs/datastore-batches.rst @@ -3,5 +3,4 @@ Batches .. automodule:: gcloud.datastore.batch :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-client.rst b/docs/datastore-client.rst index bce60ef5052b7..23c489dd11c61 100644 --- a/docs/datastore-client.rst +++ b/docs/datastore-client.rst @@ -3,7 +3,6 @@ Datastore Client .. automodule:: gcloud.datastore.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,5 +10,4 @@ Connection .. automodule:: gcloud.datastore.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-entities.rst b/docs/datastore-entities.rst index 119699fcb89e6..6e263ceeda0ee 100644 --- a/docs/datastore-entities.rst +++ b/docs/datastore-entities.rst @@ -3,5 +3,4 @@ Entities .. automodule:: gcloud.datastore.entity :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-helpers.rst b/docs/datastore-helpers.rst index 45b7637dd78c0..a70e4d2cf5341 100644 --- a/docs/datastore-helpers.rst +++ b/docs/datastore-helpers.rst @@ -3,5 +3,4 @@ Helpers .. automodule:: gcloud.datastore.helpers :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-keys.rst b/docs/datastore-keys.rst index 3567201a71014..c202471d252dc 100644 --- a/docs/datastore-keys.rst +++ b/docs/datastore-keys.rst @@ -3,5 +3,4 @@ Keys .. automodule:: gcloud.datastore.key :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-queries.rst b/docs/datastore-queries.rst index 1babc7c9661a9..4ffed79925fa8 100644 --- a/docs/datastore-queries.rst +++ b/docs/datastore-queries.rst @@ -3,5 +3,4 @@ Queries .. automodule:: gcloud.datastore.query :members: - :undoc-members: :show-inheritance: diff --git a/docs/datastore-transactions.rst b/docs/datastore-transactions.rst index 305279fe621a7..d86d7fd74c719 100644 --- a/docs/datastore-transactions.rst +++ b/docs/datastore-transactions.rst @@ -3,6 +3,5 @@ Transactions .. automodule:: gcloud.datastore.transaction :members: - :undoc-members: :show-inheritance: :inherited-members: diff --git a/docs/dns-changes.rst b/docs/dns-changes.rst index ba3e0f44a4141..40dc0dddc257a 100644 --- a/docs/dns-changes.rst +++ b/docs/dns-changes.rst @@ -3,5 +3,4 @@ Change Sets .. automodule:: gcloud.dns.changes :members: - :undoc-members: :show-inheritance: diff --git a/docs/dns-client.rst b/docs/dns-client.rst index d6c8ac49ad89a..e499c2d0eeff6 100644 --- a/docs/dns-client.rst +++ b/docs/dns-client.rst @@ -3,7 +3,6 @@ DNS Client .. automodule:: gcloud.dns.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,5 +10,4 @@ Connection .. automodule:: gcloud.dns.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/dns-resource-record-set.rst b/docs/dns-resource-record-set.rst index e68df9f58f906..ff46e6c7f1eea 100644 --- a/docs/dns-resource-record-set.rst +++ b/docs/dns-resource-record-set.rst @@ -3,5 +3,4 @@ Resource Record Sets .. automodule:: gcloud.dns.resource_record_set :members: - :undoc-members: :show-inheritance: diff --git a/docs/dns-zone.rst b/docs/dns-zone.rst index 059f535d63564..22cb456b56f63 100644 --- a/docs/dns-zone.rst +++ b/docs/dns-zone.rst @@ -3,5 +3,4 @@ Managed Zones .. automodule:: gcloud.dns.zone :members: - :undoc-members: :show-inheritance: diff --git a/docs/gcloud-api.rst b/docs/gcloud-api.rst index 49f1d443cc2d8..7226dd59c3bf1 100644 --- a/docs/gcloud-api.rst +++ b/docs/gcloud-api.rst @@ -6,7 +6,6 @@ Base Client .. automodule:: gcloud.client :members: - :undoc-members: :show-inheritance: :inherited-members: @@ -15,7 +14,6 @@ Credentials Helpers .. automodule:: gcloud.credentials :members: - :undoc-members: :show-inheritance: Base Connections @@ -23,7 +21,6 @@ Base Connections .. automodule:: gcloud.connection :members: - :undoc-members: :show-inheritance: Exceptions @@ -31,7 +28,6 @@ Exceptions .. automodule:: gcloud.exceptions :members: - :undoc-members: :show-inheritance: Environment Variables @@ -39,5 +35,4 @@ Environment Variables .. automodule:: gcloud.environment_vars :members: - :undoc-members: :show-inheritance: diff --git a/docs/happybase-batch.rst b/docs/happybase-batch.rst index c1fc86b9d6e09..3b512e2bb3474 100644 --- a/docs/happybase-batch.rst +++ b/docs/happybase-batch.rst @@ -3,5 +3,4 @@ HappyBase Batch .. automodule:: gcloud.bigtable.happybase.batch :members: - :undoc-members: :show-inheritance: diff --git a/docs/happybase-connection.rst b/docs/happybase-connection.rst index 01485bbdbde00..700b0b9cfcfa9 100644 --- a/docs/happybase-connection.rst +++ b/docs/happybase-connection.rst @@ -3,5 +3,4 @@ HappyBase Connection .. automodule:: gcloud.bigtable.happybase.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/happybase-package.rst b/docs/happybase-package.rst index 22e6134f0fa55..315ef766f32f7 100644 --- a/docs/happybase-package.rst +++ b/docs/happybase-package.rst @@ -3,5 +3,4 @@ HappyBase Package .. automodule:: gcloud.bigtable.happybase.__init__ :members: - :undoc-members: :show-inheritance: diff --git a/docs/happybase-pool.rst b/docs/happybase-pool.rst index 9390fd41c01d8..40e44a7def529 100644 --- a/docs/happybase-pool.rst +++ b/docs/happybase-pool.rst @@ -3,5 +3,4 @@ HappyBase Connection Pool .. automodule:: gcloud.bigtable.happybase.pool :members: - :undoc-members: :show-inheritance: diff --git a/docs/happybase-table.rst b/docs/happybase-table.rst index b5f477d8058d1..d8f6875eb12c9 100644 --- a/docs/happybase-table.rst +++ b/docs/happybase-table.rst @@ -3,5 +3,4 @@ HappyBase Table .. automodule:: gcloud.bigtable.happybase.table :members: - :undoc-members: :show-inheritance: diff --git a/docs/logging-client.rst b/docs/logging-client.rst index 528414e1a2e31..3b7db274a803c 100644 --- a/docs/logging-client.rst +++ b/docs/logging-client.rst @@ -3,7 +3,6 @@ Logging Client .. automodule:: gcloud.logging.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,6 +10,5 @@ Connection .. automodule:: gcloud.logging.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/logging-entries.rst b/docs/logging-entries.rst index a7b96721d30b8..a22f6094d9278 100644 --- a/docs/logging-entries.rst +++ b/docs/logging-entries.rst @@ -3,6 +3,5 @@ Entries .. automodule:: gcloud.logging.entries :members: - :undoc-members: :show-inheritance: diff --git a/docs/logging-logger.rst b/docs/logging-logger.rst index 8deb9b4345342..4a95d01662a7f 100644 --- a/docs/logging-logger.rst +++ b/docs/logging-logger.rst @@ -3,6 +3,5 @@ Logger .. automodule:: gcloud.logging.logger :members: - :undoc-members: :show-inheritance: diff --git a/docs/logging-metric.rst b/docs/logging-metric.rst index 343634e8307d1..2c49a94049cea 100644 --- a/docs/logging-metric.rst +++ b/docs/logging-metric.rst @@ -3,5 +3,4 @@ Metrics .. automodule:: gcloud.logging.metric :members: - :undoc-members: :show-inheritance: diff --git a/docs/logging-sink.rst b/docs/logging-sink.rst index bbfb62130f270..4e2dd40d44dcc 100644 --- a/docs/logging-sink.rst +++ b/docs/logging-sink.rst @@ -3,5 +3,4 @@ Sinks .. automodule:: gcloud.logging.sink :members: - :undoc-members: :show-inheritance: diff --git a/docs/monitoring-client.rst b/docs/monitoring-client.rst index 8083d39d5f4f5..abe1bdbac3254 100644 --- a/docs/monitoring-client.rst +++ b/docs/monitoring-client.rst @@ -3,7 +3,6 @@ Monitoring Client .. automodule:: gcloud.monitoring.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,6 +10,5 @@ Connection .. automodule:: gcloud.monitoring.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/monitoring-label.rst b/docs/monitoring-label.rst index 827058c926625..a20d5a741af03 100644 --- a/docs/monitoring-label.rst +++ b/docs/monitoring-label.rst @@ -3,5 +3,4 @@ Label Descriptors .. automodule:: gcloud.monitoring.label :members: - :undoc-members: :show-inheritance: diff --git a/docs/monitoring-metric.rst b/docs/monitoring-metric.rst index 79e608b639327..e1fb979e3d220 100644 --- a/docs/monitoring-metric.rst +++ b/docs/monitoring-metric.rst @@ -3,5 +3,4 @@ Metric Descriptors .. automodule:: gcloud.monitoring.metric :members: - :undoc-members: :show-inheritance: diff --git a/docs/monitoring-query.rst b/docs/monitoring-query.rst index 0a1e64982e488..1da7f7e61fccf 100644 --- a/docs/monitoring-query.rst +++ b/docs/monitoring-query.rst @@ -3,5 +3,4 @@ Time Series Query .. automodule:: gcloud.monitoring.query :members: - :undoc-members: :show-inheritance: diff --git a/docs/monitoring-resource.rst b/docs/monitoring-resource.rst index a4ec09ce98dc5..d9750decd1c67 100644 --- a/docs/monitoring-resource.rst +++ b/docs/monitoring-resource.rst @@ -3,5 +3,4 @@ Monitored Resource Descriptors .. automodule:: gcloud.monitoring.resource :members: - :undoc-members: :show-inheritance: diff --git a/docs/monitoring-timeseries.rst b/docs/monitoring-timeseries.rst index 120f7280c885d..2d3133e7823aa 100644 --- a/docs/monitoring-timeseries.rst +++ b/docs/monitoring-timeseries.rst @@ -3,5 +3,4 @@ Time Series .. automodule:: gcloud.monitoring.timeseries :members: - :undoc-members: :show-inheritance: diff --git a/docs/pubsub-client.rst b/docs/pubsub-client.rst index f8b5dfefa491a..858d2b7332b77 100644 --- a/docs/pubsub-client.rst +++ b/docs/pubsub-client.rst @@ -3,7 +3,6 @@ Pub/Sub Client .. automodule:: gcloud.pubsub.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,5 +10,4 @@ Connection .. automodule:: gcloud.pubsub.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/pubsub-iam.rst b/docs/pubsub-iam.rst index 4fb79d216139c..6cdfaf266cf56 100644 --- a/docs/pubsub-iam.rst +++ b/docs/pubsub-iam.rst @@ -4,6 +4,5 @@ IAM Policy .. automodule:: gcloud.pubsub.iam :members: :member-order: bysource - :undoc-members: :show-inheritance: diff --git a/docs/pubsub-message.rst b/docs/pubsub-message.rst index b83a9d77fc5f4..3b2561f87b9ff 100644 --- a/docs/pubsub-message.rst +++ b/docs/pubsub-message.rst @@ -3,5 +3,4 @@ Message .. automodule:: gcloud.pubsub.message :members: - :undoc-members: :show-inheritance: diff --git a/docs/pubsub-subscription.rst b/docs/pubsub-subscription.rst index 6dda5fbdc5935..d92d43e57ad40 100644 --- a/docs/pubsub-subscription.rst +++ b/docs/pubsub-subscription.rst @@ -4,5 +4,4 @@ Subscriptions .. automodule:: gcloud.pubsub.subscription :members: :member-order: bysource - :undoc-members: :show-inheritance: diff --git a/docs/pubsub-topic.rst b/docs/pubsub-topic.rst index 99401f0cfbbe2..e2ddc3c045703 100644 --- a/docs/pubsub-topic.rst +++ b/docs/pubsub-topic.rst @@ -4,5 +4,4 @@ Topics .. automodule:: gcloud.pubsub.topic :members: :member-order: bysource - :undoc-members: :show-inheritance: diff --git a/docs/resource-manager-client.rst b/docs/resource-manager-client.rst index eda8e7ac1fb8d..4c354b25bec5d 100644 --- a/docs/resource-manager-client.rst +++ b/docs/resource-manager-client.rst @@ -7,7 +7,6 @@ Client .. automodule:: gcloud.resource_manager.client :members: - :undoc-members: :show-inheritance: Connection @@ -15,5 +14,4 @@ Connection .. automodule:: gcloud.resource_manager.connection :members: - :undoc-members: :show-inheritance: diff --git a/docs/resource-manager-project.rst b/docs/resource-manager-project.rst index 8b6b93bf133e2..eee478c2533f2 100644 --- a/docs/resource-manager-project.rst +++ b/docs/resource-manager-project.rst @@ -3,5 +3,4 @@ Projects .. automodule:: gcloud.resource_manager.project :members: - :undoc-members: :show-inheritance: diff --git a/docs/storage-acl.rst b/docs/storage-acl.rst index 79fc6e4d2aeaa..6c2e60b55042c 100644 --- a/docs/storage-acl.rst +++ b/docs/storage-acl.rst @@ -3,5 +3,4 @@ ACL .. automodule:: gcloud.storage.acl :members: - :undoc-members: :show-inheritance: diff --git a/docs/storage-batch.rst b/docs/storage-batch.rst index ceb92da278d96..15d96186975c1 100644 --- a/docs/storage-batch.rst +++ b/docs/storage-batch.rst @@ -3,5 +3,4 @@ Batches .. automodule:: gcloud.storage.batch :members: - :undoc-members: :show-inheritance: diff --git a/docs/storage-blobs.rst b/docs/storage-blobs.rst index 384806d6e3d8d..e6a157771a1d8 100644 --- a/docs/storage-blobs.rst +++ b/docs/storage-blobs.rst @@ -3,5 +3,4 @@ Blobs / Objects .. automodule:: gcloud.storage.blob :members: - :undoc-members: :show-inheritance: diff --git a/docs/storage-buckets.rst b/docs/storage-buckets.rst index 55c19a461b93e..44ed1118040df 100644 --- a/docs/storage-buckets.rst +++ b/docs/storage-buckets.rst @@ -3,5 +3,4 @@ Buckets .. automodule:: gcloud.storage.bucket :members: - :undoc-members: :show-inheritance: diff --git a/docs/storage-client.rst b/docs/storage-client.rst index 36eb4a21525de..9fb00e91f92f7 100644 --- a/docs/storage-client.rst +++ b/docs/storage-client.rst @@ -3,7 +3,6 @@ Storage Client .. automodule:: gcloud.storage.client :members: - :undoc-members: :show-inheritance: Connection @@ -11,5 +10,4 @@ Connection .. automodule:: gcloud.storage.connection :members: - :undoc-members: :show-inheritance: From 17afa7180f9aa04904bcb208eef7aaecc4f9b580 Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Tue, 17 May 2016 16:11:00 -0400 Subject: [PATCH 02/10] Set explicit pattern for 'no-docstring-rgx'. Leaving it unset disabled the 'missing-docstring' check. Add missing docstrings uncovered thereby. Closes #1800. --- gcloud/bigquery/_helpers.py | 12 ++++++++++++ gcloud/bigquery/job.py | 5 +++++ gcloud/bigtable/cluster.py | 4 ++++ gcloud/client.py | 1 + gcloud/datastore/client.py | 1 + scripts/pylintrc_default | 2 +- 6 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gcloud/bigquery/_helpers.py b/gcloud/bigquery/_helpers.py index 701aedb4c0555..afb4d94682b54 100644 --- a/gcloud/bigquery/_helpers.py +++ b/gcloud/bigquery/_helpers.py @@ -18,31 +18,37 @@ def _not_null(value, field): + """Check whether 'value' should be coerced to 'field' type.""" return value is not None or field.mode != 'NULLABLE' def _int_from_json(value, field): + """Coerce 'value' to an int, if set or not nullable.""" if _not_null(value, field): return int(value) def _float_from_json(value, field): + """Coerce 'value' to a float, if set or not nullable.""" if _not_null(value, field): return float(value) def _bool_from_json(value, field): + """Coerce 'value' to a bool, if set or not nullable.""" if _not_null(value, field): return value.lower() in ['t', 'true', '1'] def _datetime_from_json(value, field): + """Coerce 'value' to a datetime, if set or not nullable.""" if _not_null(value, field): # value will be a float in seconds, to microsecond precision, in UTC. return _datetime_from_microseconds(1e6 * float(value)) def _record_from_json(value, field): + """Coerce 'value' to a mapping, if set or not nullable.""" if _not_null(value, field): record = {} for subfield, cell in zip(field.fields, value['f']): @@ -56,6 +62,7 @@ def _record_from_json(value, field): def _string_from_json(value, _): + """NOOP string -> string coercion""" return value @@ -70,6 +77,7 @@ def _string_from_json(value, _): def _rows_from_json(rows, schema): + """Convert JSON row data to rows w/ appropriate types.""" rows_data = [] for row in rows: row_data = [] @@ -132,6 +140,10 @@ def __init__(self, name, property_type): self.property_type = property_type def _validate(self, value): + """Ensure that 'value' is of the appropriate type. + + :raises: ValueError on a type mismatch. + """ if not isinstance(value, self.property_type): raise ValueError('Required type: %s' % (self.property_type,)) diff --git a/gcloud/bigquery/job.py b/gcloud/bigquery/job.py index dfcac73edd33e..db62a7ab389f8 100644 --- a/gcloud/bigquery/job.py +++ b/gcloud/bigquery/job.py @@ -933,6 +933,11 @@ def __init__(self, name, query, client): """ def _destination_table_resource(self): + """Create a JSON resource for the destination table. + + Helper for :meth:`_populate_config_resource` and + :meth:`_scrub_local_properties` + """ if self.destination is not None: return { 'projectId': self.destination.project, diff --git a/gcloud/bigtable/cluster.py b/gcloud/bigtable/cluster.py index 95be153ad4748..55e7a49b446d0 100644 --- a/gcloud/bigtable/cluster.py +++ b/gcloud/bigtable/cluster.py @@ -241,6 +241,10 @@ def table(self, table_id): return Table(table_id, self) def _update_from_pb(self, cluster_pb): + """Refresh self from the server-provided protobuf. + + Helper for :meth:`from_pb` and :meth:`reload`. + """ if not cluster_pb.display_name: # Simple field (string) raise ValueError('Cluster protobuf does not contain display_name') if not cluster_pb.serve_nodes: # Simple field (int32) diff --git a/gcloud/client.py b/gcloud/client.py index ac14e85de7059..a3bc021c411df 100644 --- a/gcloud/client.py +++ b/gcloud/client.py @@ -150,6 +150,7 @@ def __init__(self, project=None): @staticmethod def _determine_default(project): + """Helper: use default project detection.""" return _determine_default_project(project) diff --git a/gcloud/datastore/client.py b/gcloud/datastore/client.py index 1e9b40d6a8bf8..cc92b53a09504 100644 --- a/gcloud/datastore/client.py +++ b/gcloud/datastore/client.py @@ -174,6 +174,7 @@ def __init__(self, project=None, namespace=None, @staticmethod def _determine_default(project): + """Helper: override default project detection.""" return _determine_default_project(project) def _push_batch(self, batch): diff --git a/scripts/pylintrc_default b/scripts/pylintrc_default index bd0ec61e315e9..e68626855dc32 100644 --- a/scripts/pylintrc_default +++ b/scripts/pylintrc_default @@ -299,7 +299,7 @@ method-rgx=[a-z_][a-z0-9_]{2,35}$ # Regular expression which should only match function or class names that do # not require a docstring. -# DEFAULT: no-docstring-rgx=__.*__ +no-docstring-rgx=__.*__ # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. From 436ac4d65520add4b0658f922205b7c94dc21c70 Mon Sep 17 00:00:00 2001 From: David Raleigh Date: Tue, 17 May 2016 17:31:25 -0600 Subject: [PATCH 03/10] Update README.rst Returns ```None```: ```python blob = bucket.get_blob('/remote/path/to/file.txt') ``` Returns blob: ```python blob = bucket.get_blob('remote/path/to/file.txt') ``` --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 1dab778713e65..0cab79fee1197 100644 --- a/README.rst +++ b/README.rst @@ -124,10 +124,10 @@ how to create a bucket. client = storage.Client() bucket = client.get_bucket('bucket-id-here') # Then do other things... - blob = bucket.get_blob('/remote/path/to/file.txt') + blob = bucket.get_blob('remote/path/to/file.txt') print blob.download_as_string() blob.upload_from_string('New contents!') - blob2 = bucket.blob('/remote/path/storage.txt') + blob2 = bucket.blob('remote/path/storage.txt') blob2.upload_from_filename(filename='/local/path.txt') Google Cloud Pub/Sub From 53715f1d47777e0bb517365ba410f0178b2552e8 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Wed, 11 May 2016 11:21:25 -0700 Subject: [PATCH 04/10] Reducing limit or the life of a datastore query iterator. Fixes #1763. --- gcloud/datastore/query.py | 2 ++ gcloud/datastore/test_query.py | 41 ++++++++++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index 15519a01f15b6..38248638c6989 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -463,6 +463,8 @@ def __iter__(self): yield entity if not self._more_results: break + if self._limit is not None: + self._limit -= len(self._page) self.next_page() diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index 4108de7acd2e3..de75871a1b502 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -523,9 +523,7 @@ def test___iter___w_more(self): [{'kind': self._KIND, 'id': self._ID}]) self.assertEqual(entities[1]['foo'], u'Foo') qpb1 = _pb_from_query(query) - qpb1.offset = 0 qpb2 = _pb_from_query(query) - qpb2.offset = 0 qpb2.start_cursor = self._END EXPECTED1 = { 'project': self._PROJECT, @@ -543,6 +541,45 @@ def test___iter___w_more(self): self.assertEqual(connection._called_with[0], EXPECTED1) self.assertEqual(connection._called_with[1], EXPECTED2) + def test___iter___w_limit(self): + from gcloud.datastore.query import _pb_from_query + + connection = _Connection() + client = self._makeClient(connection) + query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) + self._addQueryResults(connection, more=True) + self._addQueryResults(connection) + iterator = self._makeOne(query, client, limit=2) + entities = list(iterator) + + self.assertFalse(iterator._more_results) + self.assertEqual(len(entities), 2) + for entity in entities: + self.assertEqual( + entity.key.path, + [{'kind': self._KIND, 'id': self._ID}]) + self.assertEqual(entities[1]['foo'], u'Foo') + qpb1 = _pb_from_query(query) + qpb1.limit.value = 2 + qpb2 = _pb_from_query(query) + qpb2.start_cursor = self._END + qpb2.limit.value = 1 + EXPECTED1 = { + 'project': self._PROJECT, + 'query_pb': qpb1, + 'namespace': self._NAMESPACE, + 'transaction_id': None, + } + EXPECTED2 = { + 'project': self._PROJECT, + 'query_pb': qpb2, + 'namespace': self._NAMESPACE, + 'transaction_id': None, + } + self.assertEqual(len(connection._called_with), 2) + self.assertEqual(connection._called_with[0], EXPECTED1) + self.assertEqual(connection._called_with[1], EXPECTED2) + class Test__pb_from_query(unittest2.TestCase): From c4074b2fb705c208f8f7989012abcc8ae8083993 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Thu, 12 May 2016 16:50:20 -0700 Subject: [PATCH 05/10] Updating offset during life of a datastore query iterator. --- gcloud/datastore/query.py | 13 ++++++++----- gcloud/datastore/test_query.py | 6 ++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index 38248638c6989..6261da3742e4a 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -363,8 +363,7 @@ class Iterator(object): :param limit: (Optional) Limit the number of results returned. :type offset: integer - :param offset: (Optional) Defaults to 0. Offset used to begin - a query. + :param offset: (Optional) Offset used to begin a query. :type start_cursor: bytes :param start_cursor: (Optional) Cursor to begin paging through @@ -382,7 +381,7 @@ class Iterator(object): _query_pb2.QueryResultBatch.MORE_RESULTS_AFTER_LIMIT, ) - def __init__(self, query, client, limit=None, offset=0, + def __init__(self, query, client, limit=None, offset=None, start_cursor=None, end_cursor=None): self._query = query self._client = client @@ -413,7 +412,8 @@ def next_page(self): if self._limit is not None: pb.limit.value = self._limit - pb.offset = self._offset + if self._offset is not None: + pb.offset = self._offset transaction = self._client.current_transaction @@ -463,8 +463,11 @@ def __iter__(self): yield entity if not self._more_results: break + num_results = len(self._page) if self._limit is not None: - self._limit -= len(self._page) + self._limit -= num_results + if self._offset is not None: + self._offset += num_results self.next_page() diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index de75871a1b502..02ebdea7eea1e 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -374,7 +374,7 @@ def test_ctor_defaults(self): iterator = self._makeOne(query, connection) self.assertTrue(iterator._query is query) self.assertEqual(iterator._limit, None) - self.assertEqual(iterator._offset, 0) + self.assertEqual(iterator._offset, None) def test_ctor_explicit(self): client = self._makeClient() @@ -549,7 +549,7 @@ def test___iter___w_limit(self): query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) self._addQueryResults(connection, more=True) self._addQueryResults(connection) - iterator = self._makeOne(query, client, limit=2) + iterator = self._makeOne(query, client, limit=2, offset=13) entities = list(iterator) self.assertFalse(iterator._more_results) @@ -561,9 +561,11 @@ def test___iter___w_limit(self): self.assertEqual(entities[1]['foo'], u'Foo') qpb1 = _pb_from_query(query) qpb1.limit.value = 2 + qpb1.offset = 13 qpb2 = _pb_from_query(query) qpb2.start_cursor = self._END qpb2.limit.value = 1 + qpb2.offset = 14 EXPECTED1 = { 'project': self._PROJECT, 'query_pb': qpb1, From 8941a07a1e6d08b8d9eaec6e62b9849bd3008f9d Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Thu, 12 May 2016 17:27:33 -0700 Subject: [PATCH 06/10] Subtracting offset instead of adding it. --- gcloud/datastore/query.py | 4 +++- gcloud/datastore/test_query.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index 6261da3742e4a..0ffe64ade9012 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -467,7 +467,9 @@ def __iter__(self): if self._limit is not None: self._limit -= num_results if self._offset is not None: - self._offset += num_results + # NOTE: The offset goes down relative to the location + # because we are updating the cursor each time. + self._offset -= num_results self.next_page() diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index 02ebdea7eea1e..dfb07f07f3ebc 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -565,7 +565,7 @@ def test___iter___w_limit(self): qpb2 = _pb_from_query(query) qpb2.start_cursor = self._END qpb2.limit.value = 1 - qpb2.offset = 14 + qpb2.offset = 12 EXPECTED1 = { 'project': self._PROJECT, 'query_pb': qpb1, From d068ba202c6076dbd05573c14eda594b59799e5f Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Tue, 17 May 2016 10:09:45 -0700 Subject: [PATCH 07/10] Using skipped results to modify query offset. --- gcloud/datastore/query.py | 8 +++++--- gcloud/datastore/test_query.py | 20 ++++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index 0ffe64ade9012..a2ba703fba0b0 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -390,6 +390,7 @@ def __init__(self, query, client, limit=None, offset=None, self._start_cursor = start_cursor self._end_cursor = end_cursor self._page = self._more_results = None + self._skipped_results = None def next_page(self): """Fetch a single "page" of query results. @@ -432,7 +433,8 @@ def next_page(self): # results. See # https://github.com/GoogleCloudPlatform/gcloud-python/issues/280 # for discussion. - entity_pbs, cursor_as_bytes, more_results_enum = query_results[:3] + (entity_pbs, cursor_as_bytes, + more_results_enum, self._skipped_results) = query_results if cursor_as_bytes == b'': self._start_cursor = None @@ -466,10 +468,10 @@ def __iter__(self): num_results = len(self._page) if self._limit is not None: self._limit -= num_results - if self._offset is not None: + if self._offset is not None and self._skipped_results is not None: # NOTE: The offset goes down relative to the location # because we are updating the cursor each time. - self._offset -= num_results + self._offset -= self._skipped_results self.next_page() diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index dfb07f07f3ebc..899a606ca40a6 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -345,7 +345,8 @@ def _getTargetClass(self): def _makeOne(self, *args, **kw): return self._getTargetClass()(*args, **kw) - def _addQueryResults(self, connection, cursor=_END, more=False): + def _addQueryResults(self, connection, cursor=_END, more=False, + skipped_results=None): from gcloud.datastore._generated import entity_pb2 from gcloud.datastore._generated import query_pb2 from gcloud.datastore.helpers import _new_value_pb @@ -361,7 +362,7 @@ def _addQueryResults(self, connection, cursor=_END, more=False): value_pb = _new_value_pb(entity_pb, 'foo') value_pb.string_value = u'Foo' connection._results.append( - ([entity_pb], cursor, MORE if more else NO_MORE)) + ([entity_pb], cursor, MORE if more else NO_MORE, skipped_results)) def _makeClient(self, connection=None): if connection is None: @@ -476,8 +477,8 @@ def test_next_page_w_cursors_w_bogus_more(self): client = self._makeClient(connection) query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) self._addQueryResults(connection, cursor=self._END, more=True) - epb, cursor, _ = connection._results.pop() - connection._results.append((epb, cursor, 4)) # invalid enum + epb, cursor, _, _ = connection._results.pop() + connection._results.append((epb, cursor, 4, None)) # invalid enum iterator = self._makeOne(query, client) self.assertRaises(ValueError, iterator.next_page) @@ -547,9 +548,12 @@ def test___iter___w_limit(self): connection = _Connection() client = self._makeClient(connection) query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) - self._addQueryResults(connection, more=True) + skipped_results = 4 + self._addQueryResults(connection, more=True, + skipped_results=skipped_results) self._addQueryResults(connection) - iterator = self._makeOne(query, client, limit=2, offset=13) + offset = 13 + iterator = self._makeOne(query, client, limit=2, offset=offset) entities = list(iterator) self.assertFalse(iterator._more_results) @@ -561,11 +565,11 @@ def test___iter___w_limit(self): self.assertEqual(entities[1]['foo'], u'Foo') qpb1 = _pb_from_query(query) qpb1.limit.value = 2 - qpb1.offset = 13 + qpb1.offset = offset qpb2 = _pb_from_query(query) qpb2.start_cursor = self._END qpb2.limit.value = 1 - qpb2.offset = 12 + qpb2.offset = offset - skipped_results EXPECTED1 = { 'project': self._PROJECT, 'query_pb': qpb1, From 8a33bc772314487ee2e7f07ecdf16a36f2411a88 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Tue, 17 May 2016 10:44:48 -0700 Subject: [PATCH 08/10] Fixing a docstring and making offset/limit test a bit more. --- gcloud/datastore/connection.py | 5 +++ gcloud/datastore/query.py | 13 ++------ gcloud/datastore/test_query.py | 57 ++++++++++++++++++++++------------ 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/gcloud/datastore/connection.py b/gcloud/datastore/connection.py index d949b696b88d5..63a82adf19ff9 100644 --- a/gcloud/datastore/connection.py +++ b/gcloud/datastore/connection.py @@ -263,6 +263,11 @@ def run_query(self, project, query_pb, namespace=None, :param transaction_id: If passed, make the request in the scope of the given transaction. Incompatible with ``eventual==True``. + + :rtype: tuple + :returns: Four-tuple containing the entities returned, + the end cursor of the query, a ``more_results`` + enum and a count of the number of skipped results. """ request = _datastore_pb2.RunQueryRequest() _set_read_options(request, eventual, transaction_id) diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index a2ba703fba0b0..a6ce955cee380 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -379,6 +379,7 @@ class Iterator(object): _FINISHED = ( _query_pb2.QueryResultBatch.NO_MORE_RESULTS, _query_pb2.QueryResultBatch.MORE_RESULTS_AFTER_LIMIT, + _query_pb2.QueryResultBatch.MORE_RESULTS_AFTER_CURSOR, ) def __init__(self, query, client, limit=None, offset=None, @@ -424,15 +425,6 @@ def next_page(self): namespace=self._query.namespace, transaction_id=transaction and transaction.id, ) - # NOTE: `query_results` contains an extra value that we don't use, - # namely `skipped_results`. - # - # NOTE: The value of `more_results` is not currently useful because - # the back-end always returns an enum - # value of MORE_RESULTS_AFTER_LIMIT even if there are no more - # results. See - # https://github.com/GoogleCloudPlatform/gcloud-python/issues/280 - # for discussion. (entity_pbs, cursor_as_bytes, more_results_enum, self._skipped_results) = query_results @@ -459,8 +451,8 @@ def __iter__(self): :rtype: sequence of :class:`gcloud.datastore.entity.Entity` """ - self.next_page() while True: + self.next_page() for entity in self._page: yield entity if not self._more_results: @@ -472,7 +464,6 @@ def __iter__(self): # NOTE: The offset goes down relative to the location # because we are updating the cursor each time. self._offset -= self._skipped_results - self.next_page() def _pb_from_query(query): diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index 899a606ca40a6..dfb3a1aeca85f 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -346,23 +346,30 @@ def _makeOne(self, *args, **kw): return self._getTargetClass()(*args, **kw) def _addQueryResults(self, connection, cursor=_END, more=False, - skipped_results=None): + skipped_results=None, no_entity=False): from gcloud.datastore._generated import entity_pb2 from gcloud.datastore._generated import query_pb2 from gcloud.datastore.helpers import _new_value_pb - MORE = query_pb2.QueryResultBatch.NOT_FINISHED - NO_MORE = query_pb2.QueryResultBatch.MORE_RESULTS_AFTER_LIMIT + if more: + more_enum = query_pb2.QueryResultBatch.NOT_FINISHED + else: + more_enum = query_pb2.QueryResultBatch.MORE_RESULTS_AFTER_LIMIT _ID = 123 - entity_pb = entity_pb2.Entity() - entity_pb.key.partition_id.project_id = self._PROJECT - path_element = entity_pb.key.path.add() - path_element.kind = self._KIND - path_element.id = _ID - value_pb = _new_value_pb(entity_pb, 'foo') - value_pb.string_value = u'Foo' + if no_entity: + entities = [] + else: + entity_pb = entity_pb2.Entity() + entity_pb.key.partition_id.project_id = self._PROJECT + path_element = entity_pb.key.path.add() + path_element.kind = self._KIND + path_element.id = _ID + value_pb = _new_value_pb(entity_pb, 'foo') + value_pb.string_value = u'Foo' + entities = [entity_pb] + connection._results.append( - ([entity_pb], cursor, MORE if more else NO_MORE, skipped_results)) + (entities, cursor, more_enum, skipped_results)) def _makeClient(self, connection=None): if connection is None: @@ -478,7 +485,7 @@ def test_next_page_w_cursors_w_bogus_more(self): query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) self._addQueryResults(connection, cursor=self._END, more=True) epb, cursor, _, _ = connection._results.pop() - connection._results.append((epb, cursor, 4, None)) # invalid enum + connection._results.append((epb, cursor, 5, None)) # invalid enum iterator = self._makeOne(query, client) self.assertRaises(ValueError, iterator.next_page) @@ -548,11 +555,13 @@ def test___iter___w_limit(self): connection = _Connection() client = self._makeClient(connection) query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) - skipped_results = 4 - self._addQueryResults(connection, more=True, - skipped_results=skipped_results) + skip1 = 4 + skip2 = 9 + self._addQueryResults(connection, more=True, skipped_results=skip1, + no_entity=True) + self._addQueryResults(connection, more=True, skipped_results=skip2) self._addQueryResults(connection) - offset = 13 + offset = skip1 + skip2 iterator = self._makeOne(query, client, limit=2, offset=offset) entities = list(iterator) @@ -568,8 +577,11 @@ def test___iter___w_limit(self): qpb1.offset = offset qpb2 = _pb_from_query(query) qpb2.start_cursor = self._END - qpb2.limit.value = 1 - qpb2.offset = offset - skipped_results + qpb2.limit.value = 2 + qpb2.offset = offset - skip1 + qpb3 = _pb_from_query(query) + qpb3.start_cursor = self._END + qpb3.limit.value = 1 EXPECTED1 = { 'project': self._PROJECT, 'query_pb': qpb1, @@ -582,9 +594,16 @@ def test___iter___w_limit(self): 'namespace': self._NAMESPACE, 'transaction_id': None, } - self.assertEqual(len(connection._called_with), 2) + EXPECTED3 = { + 'project': self._PROJECT, + 'query_pb': qpb3, + 'namespace': self._NAMESPACE, + 'transaction_id': None, + } + self.assertEqual(len(connection._called_with), 3) self.assertEqual(connection._called_with[0], EXPECTED1) self.assertEqual(connection._called_with[1], EXPECTED2) + self.assertEqual(connection._called_with[2], EXPECTED3) class Test__pb_from_query(unittest2.TestCase): From 8a8cd87044b4e8e56a8178865d1817217e295ee0 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Tue, 17 May 2016 10:57:25 -0700 Subject: [PATCH 09/10] Removing unnecessary snippet in test. --- gcloud/datastore/test_query.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index dfb3a1aeca85f..7a0e0672a94a4 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -571,7 +571,6 @@ def test___iter___w_limit(self): self.assertEqual( entity.key.path, [{'kind': self._KIND, 'id': self._ID}]) - self.assertEqual(entities[1]['foo'], u'Foo') qpb1 = _pb_from_query(query) qpb1.limit.value = 2 qpb1.offset = offset From a03a95ee35be2998ab591ef22a42dfb650647d44 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Tue, 17 May 2016 14:49:52 -0700 Subject: [PATCH 10/10] Updating next_page() unit tests to check if skipped_results is set. --- gcloud/datastore/test_query.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index 7a0e0672a94a4..f22f92e7e43f7 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -383,6 +383,7 @@ def test_ctor_defaults(self): self.assertTrue(iterator._query is query) self.assertEqual(iterator._limit, None) self.assertEqual(iterator._offset, None) + self.assertEqual(iterator._skipped_results, None) def test_ctor_explicit(self): client = self._makeClient() @@ -400,6 +401,7 @@ def test_next_page_no_cursors_no_more(self): self._addQueryResults(connection, cursor=b'') iterator = self._makeOne(query, client) entities, more_results, cursor = iterator.next_page() + self.assertEqual(iterator._skipped_results, None) self.assertEqual(cursor, None) self.assertFalse(more_results) @@ -423,13 +425,16 @@ def test_next_page_no_cursors_no_more_w_offset_and_limit(self): connection = _Connection() client = self._makeClient(connection) query = _Query(client, self._KIND, self._PROJECT, self._NAMESPACE) - self._addQueryResults(connection, cursor=b'') + skipped_results = object() + self._addQueryResults(connection, cursor=b'', + skipped_results=skipped_results) iterator = self._makeOne(query, client, 13, 29) entities, more_results, cursor = iterator.next_page() self.assertEqual(cursor, None) self.assertFalse(more_results) self.assertFalse(iterator._more_results) + self.assertEqual(iterator._skipped_results, skipped_results) self.assertEqual(len(entities), 1) self.assertEqual(entities[0].key.path, [{'kind': self._KIND, 'id': self._ID}]) @@ -461,6 +466,7 @@ def test_next_page_w_cursors_w_more(self): self.assertEqual(cursor, urlsafe_b64encode(self._END)) self.assertTrue(more_results) self.assertTrue(iterator._more_results) + self.assertEqual(iterator._skipped_results, None) self.assertEqual(iterator._end_cursor, None) self.assertEqual(urlsafe_b64decode(iterator._start_cursor), self._END) self.assertEqual(len(entities), 1)