Skip to content

Commit 749712e

Browse files
committed
Swapping the order of kind and dataset_id in Query constructor.
Also updating docstring in Query.fetch() to reflect this. Partially addresses #704.
1 parent 3b65abd commit 749712e

File tree

2 files changed

+38
-37
lines changed

2 files changed

+38
-37
lines changed

gcloud/datastore/query.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ class Query(object):
7070
"""Mapping of operator strings and their protobuf equivalents."""
7171

7272
def __init__(self,
73-
dataset_id=None,
7473
kind=None,
74+
dataset_id=None,
7575
namespace=None,
7676
ancestor=None,
7777
filters=(),
@@ -191,7 +191,8 @@ def add_filter(self, property_name, operator, value):
191191
and operator is one of ``OPERATORS``
192192
(ie, ``=``, ``<``, ``<=``, ``>``, ``>=``)::
193193
194-
>>> query = Query('Person')
194+
>>> from gcloud import datastore
195+
>>> query = datastore.Query('Person')
195196
>>> query.add_filter('name', '=', 'James')
196197
>>> query.add_filter('age', '>', 50)
197198
@@ -297,8 +298,8 @@ def fetch(self, limit=None, offset=0, start_cursor=None, end_cursor=None,
297298
298299
For example::
299300
300-
>>> from gcloud.datastore.query import Query
301-
>>> query = Query('dataset-id', 'Person')
301+
>>> from gcloud import datastore
302+
>>> query = datastore.Query('Person')
302303
>>> query.add_filter('name', '=', 'Sally')
303304
>>> list(query.fetch())
304305
[<Entity object>, <Entity object>, ...]

gcloud/datastore/test_query.py

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ def test_ctor_explicit(self):
6161
ORDER = ['foo', 'bar']
6262
GROUP_BY = ['foo']
6363
query = self._makeOne(
64-
dataset_id=_DATASET,
6564
kind=_KIND,
65+
dataset_id=_DATASET,
6666
namespace=_NAMESPACE,
6767
ancestor=ancestor,
6868
filters=FILTERS,
@@ -81,7 +81,7 @@ def test_ctor_explicit(self):
8181

8282
def test_namespace_setter_w_non_string(self):
8383
_DATASET = 'DATASET'
84-
query = self._makeOne(_DATASET)
84+
query = self._makeOne(dataset_id=_DATASET)
8585

8686
def _assign(val):
8787
query.namespace = val
@@ -91,14 +91,14 @@ def _assign(val):
9191
def test_namespace_setter(self):
9292
_DATASET = 'DATASET'
9393
_NAMESPACE = 'NAMESPACE'
94-
query = self._makeOne(_DATASET)
94+
query = self._makeOne(dataset_id=_DATASET)
9595
query.namespace = _NAMESPACE
9696
self.assertEqual(query.dataset_id, _DATASET)
9797
self.assertEqual(query.namespace, _NAMESPACE)
9898

9999
def test_kind_setter_w_non_string(self):
100100
_DATASET = 'DATASET'
101-
query = self._makeOne(_DATASET)
101+
query = self._makeOne(dataset_id=_DATASET)
102102

103103
def _assign(val):
104104
query.kind = val
@@ -108,7 +108,7 @@ def _assign(val):
108108
def test_kind_setter_wo_existing(self):
109109
_DATASET = 'DATASET'
110110
_KIND = 'KIND'
111-
query = self._makeOne(_DATASET)
111+
query = self._makeOne(dataset_id=_DATASET)
112112
query.kind = _KIND
113113
self.assertEqual(query.dataset_id, _DATASET)
114114
self.assertEqual(query.kind, _KIND)
@@ -117,15 +117,15 @@ def test_kind_setter_w_existing(self):
117117
_DATASET = 'DATASET'
118118
_KIND_BEFORE = 'KIND_BEFORE'
119119
_KIND_AFTER = 'KIND_AFTER'
120-
query = self._makeOne(_DATASET, _KIND_BEFORE)
120+
query = self._makeOne(_KIND_BEFORE, _DATASET)
121121
self.assertEqual(query.kind, _KIND_BEFORE)
122122
query.kind = _KIND_AFTER
123123
self.assertEqual(query.dataset_id, _DATASET)
124124
self.assertEqual(query.kind, _KIND_AFTER)
125125

126126
def test_ancestor_setter_w_non_key(self):
127127
_DATASET = 'DATASET'
128-
query = self._makeOne(_DATASET)
128+
query = self._makeOne(dataset_id=_DATASET)
129129

130130
def _assign(val):
131131
query.ancestor = val
@@ -138,7 +138,7 @@ def test_ancestor_setter_w_key(self):
138138
_DATASET = 'DATASET'
139139
_NAME = u'NAME'
140140
key = Key('KIND', 123, dataset_id='DATASET')
141-
query = self._makeOne(_DATASET)
141+
query = self._makeOne(dataset_id=_DATASET)
142142
query.add_filter('name', '=', _NAME)
143143
query.ancestor = key
144144
self.assertEqual(query.ancestor.path, key.path)
@@ -147,25 +147,25 @@ def test_ancestor_deleter_w_key(self):
147147
from gcloud.datastore.key import Key
148148
_DATASET = 'DATASET'
149149
key = Key('KIND', 123, dataset_id='DATASET')
150-
query = self._makeOne(_DATASET, ancestor=key)
150+
query = self._makeOne(dataset_id=_DATASET, ancestor=key)
151151
del query.ancestor
152152
self.assertTrue(query.ancestor is None)
153153

154154
def test_add_filter_setter_w_unknown_operator(self):
155155
_DATASET = 'DATASET'
156-
query = self._makeOne(_DATASET)
156+
query = self._makeOne(dataset_id=_DATASET)
157157
self.assertRaises(ValueError, query.add_filter,
158158
'firstname', '~~', 'John')
159159

160160
def test_add_filter_w_known_operator(self):
161161
_DATASET = 'DATASET'
162-
query = self._makeOne(_DATASET)
162+
query = self._makeOne(dataset_id=_DATASET)
163163
query.add_filter('firstname', '=', u'John')
164164
self.assertEqual(query.filters, [('firstname', '=', u'John')])
165165

166166
def test_add_filter_w_all_operators(self):
167167
_DATASET = 'DATASET'
168-
query = self._makeOne(_DATASET)
168+
query = self._makeOne(dataset_id=_DATASET)
169169
query.add_filter('leq_prop', '<=', u'val1')
170170
query.add_filter('geq_prop', '>=', u'val2')
171171
query.add_filter('lt_prop', '<', u'val3')
@@ -181,7 +181,7 @@ def test_add_filter_w_all_operators(self):
181181
def test_add_filter_w_known_operator_and_entity(self):
182182
from gcloud.datastore.entity import Entity
183183
_DATASET = 'DATASET'
184-
query = self._makeOne(_DATASET)
184+
query = self._makeOne(dataset_id=_DATASET)
185185
other = Entity()
186186
other['firstname'] = u'John'
187187
other['lastname'] = u'Smith'
@@ -190,15 +190,15 @@ def test_add_filter_w_known_operator_and_entity(self):
190190

191191
def test_add_filter_w_whitespace_property_name(self):
192192
_DATASET = 'DATASET'
193-
query = self._makeOne(_DATASET)
193+
query = self._makeOne(dataset_id=_DATASET)
194194
PROPERTY_NAME = ' property with lots of space '
195195
query.add_filter(PROPERTY_NAME, '=', u'John')
196196
self.assertEqual(query.filters, [(PROPERTY_NAME, '=', u'John')])
197197

198198
def test_add_filter___key__valid_key(self):
199199
from gcloud.datastore.key import Key
200200
_DATASET = 'DATASET'
201-
query = self._makeOne(_DATASET)
201+
query = self._makeOne(dataset_id=_DATASET)
202202
key = Key('Foo', dataset_id='DATASET')
203203
query.add_filter('__key__', '=', key)
204204
self.assertEqual(query.filters, [('__key__', '=', key)])
@@ -207,32 +207,32 @@ def test_filter___key__invalid_operator(self):
207207
from gcloud.datastore.key import Key
208208
_DATASET = 'DATASET'
209209
key = Key('Foo', dataset_id='DATASET')
210-
query = self._makeOne(_DATASET)
210+
query = self._makeOne(dataset_id=_DATASET)
211211
self.assertRaises(ValueError, query.add_filter, '__key__', '<', key)
212212

213213
def test_filter___key__invalid_value(self):
214214
_DATASET = 'DATASET'
215-
query = self._makeOne(_DATASET)
215+
query = self._makeOne(dataset_id=_DATASET)
216216
self.assertRaises(ValueError, query.add_filter, '__key__', '=', None)
217217

218218
def test_projection_setter_empty(self):
219219
_DATASET = 'DATASET'
220220
_KIND = 'KIND'
221-
query = self._makeOne(_DATASET, _KIND)
221+
query = self._makeOne(_KIND, _DATASET)
222222
query.projection = []
223223
self.assertEqual(query.projection, [])
224224

225225
def test_projection_setter_string(self):
226226
_DATASET = 'DATASET'
227227
_KIND = 'KIND'
228-
query = self._makeOne(_DATASET, _KIND)
228+
query = self._makeOne(_KIND, _DATASET)
229229
query.projection = 'field1'
230230
self.assertEqual(query.projection, ['field1'])
231231

232232
def test_projection_setter_non_empty(self):
233233
_DATASET = 'DATASET'
234234
_KIND = 'KIND'
235-
query = self._makeOne(_DATASET, _KIND)
235+
query = self._makeOne(_KIND, _DATASET)
236236
query.projection = ['field1', 'field2']
237237
self.assertEqual(query.projection, ['field1', 'field2'])
238238

@@ -241,7 +241,7 @@ def test_projection_setter_multiple_calls(self):
241241
_KIND = 'KIND'
242242
_PROJECTION1 = ['field1', 'field2']
243243
_PROJECTION2 = ['field3']
244-
query = self._makeOne(_DATASET, _KIND)
244+
query = self._makeOne(_KIND, _DATASET)
245245
query.projection = _PROJECTION1
246246
self.assertEqual(query.projection, _PROJECTION1)
247247
query.projection = _PROJECTION2
@@ -250,56 +250,56 @@ def test_projection_setter_multiple_calls(self):
250250
def test_keys_only(self):
251251
_DATASET = 'DATASET'
252252
_KIND = 'KIND'
253-
query = self._makeOne(_DATASET, _KIND)
253+
query = self._makeOne(_KIND, _DATASET)
254254
query.keys_only()
255255
self.assertEqual(query.projection, ['__key__'])
256256

257257
def test_order_setter_empty(self):
258258
_DATASET = 'DATASET'
259259
_KIND = 'KIND'
260-
query = self._makeOne(_DATASET, _KIND, order=['foo', '-bar'])
260+
query = self._makeOne(_KIND, _DATASET, order=['foo', '-bar'])
261261
query.order = []
262262
self.assertEqual(query.order, [])
263263

264264
def test_order_setter_string(self):
265265
_DATASET = 'DATASET'
266266
_KIND = 'KIND'
267-
query = self._makeOne(_DATASET, _KIND)
267+
query = self._makeOne(_KIND, _DATASET)
268268
query.order = 'field'
269269
self.assertEqual(query.order, ['field'])
270270

271271
def test_order_setter_single_item_list_desc(self):
272272
_DATASET = 'DATASET'
273273
_KIND = 'KIND'
274-
query = self._makeOne(_DATASET, _KIND)
274+
query = self._makeOne(_KIND, _DATASET)
275275
query.order = ['-field']
276276
self.assertEqual(query.order, ['-field'])
277277

278278
def test_order_setter_multiple(self):
279279
_DATASET = 'DATASET'
280280
_KIND = 'KIND'
281-
query = self._makeOne(_DATASET, _KIND)
281+
query = self._makeOne(_KIND, _DATASET)
282282
query.order = ['foo', '-bar']
283283
self.assertEqual(query.order, ['foo', '-bar'])
284284

285285
def test_group_by_setter_empty(self):
286286
_DATASET = 'DATASET'
287287
_KIND = 'KIND'
288-
query = self._makeOne(_DATASET, _KIND, group_by=['foo', 'bar'])
288+
query = self._makeOne(_KIND, _DATASET, group_by=['foo', 'bar'])
289289
query.group_by = []
290290
self.assertEqual(query.group_by, [])
291291

292292
def test_group_by_setter_string(self):
293293
_DATASET = 'DATASET'
294294
_KIND = 'KIND'
295-
query = self._makeOne(_DATASET, _KIND)
295+
query = self._makeOne(_KIND, _DATASET)
296296
query.group_by = 'field1'
297297
self.assertEqual(query.group_by, ['field1'])
298298

299299
def test_group_by_setter_non_empty(self):
300300
_DATASET = 'DATASET'
301301
_KIND = 'KIND'
302-
query = self._makeOne(_DATASET, _KIND)
302+
query = self._makeOne(_KIND, _DATASET)
303303
query.group_by = ['field1', 'field2']
304304
self.assertEqual(query.group_by, ['field1', 'field2'])
305305

@@ -308,7 +308,7 @@ def test_group_by_multiple_calls(self):
308308
_KIND = 'KIND'
309309
_GROUP_BY1 = ['field1', 'field2']
310310
_GROUP_BY2 = ['field3']
311-
query = self._makeOne(_DATASET, _KIND)
311+
query = self._makeOne(_KIND, _DATASET)
312312
query.group_by = _GROUP_BY1
313313
self.assertEqual(query.group_by, _GROUP_BY1)
314314
query.group_by = _GROUP_BY2
@@ -317,7 +317,7 @@ def test_group_by_multiple_calls(self):
317317
def test_fetch_defaults_wo_implicit_connection(self):
318318
_DATASET = 'DATASET'
319319
_KIND = 'KIND'
320-
query = self._makeOne(_DATASET, _KIND)
320+
query = self._makeOne(_KIND, _DATASET)
321321
self.assertRaises(ValueError, query.fetch)
322322

323323
def test_fetch_defaults_w_implicit_connection(self):
@@ -326,7 +326,7 @@ def test_fetch_defaults_w_implicit_connection(self):
326326
_DATASET = 'DATASET'
327327
_KIND = 'KIND'
328328
connection = _Connection()
329-
query = self._makeOne(_DATASET, _KIND)
329+
query = self._makeOne(_KIND, _DATASET)
330330

331331
with _monkey_defaults(connection=connection):
332332
iterator = query.fetch()
@@ -338,7 +338,7 @@ def test_fetch_explicit(self):
338338
_DATASET = 'DATASET'
339339
_KIND = 'KIND'
340340
connection = _Connection()
341-
query = self._makeOne(_DATASET, _KIND)
341+
query = self._makeOne(_KIND, _DATASET)
342342
iterator = query.fetch(limit=7, offset=8, connection=connection)
343343
self.assertTrue(iterator._query is query)
344344
self.assertEqual(iterator._limit, 7)

0 commit comments

Comments
 (0)