From 0c5cef566183e6b92fa30a476ce144578d747f3a Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Tue, 6 Jan 2015 12:05:02 -0500 Subject: [PATCH] Add 'keys_only' method to Query. Sets the projection to include only entity keys. Supercedes #466. --- gcloud/datastore/query.py | 4 ++++ gcloud/datastore/test_query.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index 3604db1eb04a..86dd5a2d56eb 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -246,6 +246,10 @@ def projection(self, projection): projection = [projection] self._projection[:] = projection + def keys_only(self): + """Set the projection to include only keys.""" + self._projection[:] = ['__key__'] + @property def order(self): """Names of fields used to sort query results. diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index 20cd4d210811..1445b8494671 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -250,6 +250,12 @@ def test_projection_setter_multiple_calls(self): query.projection = _PROJECTION2 self.assertEqual(query.projection, _PROJECTION2) + def test_keys_only(self): + _KIND = 'KIND' + query = self._makeOne(_KIND) + query.keys_only() + self.assertEqual(query.projection, ['__key__']) + def test_order_setter_empty(self): _KIND = 'KIND' query = self._makeOne(_KIND, order=['foo', '-bar'])