Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 0dbdfa5

Browse filesBrowse files
committed
Replacing uses of HasField with _has_field in datastore.
1 parent 5865757 commit 0dbdfa5
Copy full SHA for 0dbdfa5

File tree

Expand file treeCollapse file tree

5 files changed

+36
-24
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+36
-24
lines changed

‎gcloud/datastore/connection.py

Copy file name to clipboardExpand all lines: gcloud/datastore/connection.py
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import os
1818

19+
from gcloud._helpers import _has_field
1920
from gcloud import connection
2021
from gcloud.environment_vars import GCD_HOST
2122
from gcloud.exceptions import make_exception
@@ -400,7 +401,7 @@ def _prepare_key_for_request(key_pb): # pragma: NO COVER copied from helpers
400401
:returns: A key which will be added to a request. It will be the
401402
original if nothing needs to be changed.
402403
"""
403-
if key_pb.partition_id.HasField('dataset_id'):
404+
if _has_field(key_pb.partition_id, 'dataset_id'):
404405
new_key_pb = _entity_pb2.Key()
405406
new_key_pb.CopyFrom(key_pb)
406407
new_key_pb.partition_id.ClearField('dataset_id')

‎gcloud/datastore/helpers.py

Copy file name to clipboardExpand all lines: gcloud/datastore/helpers.py
+16-15Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import six
2424

2525
from gcloud._helpers import _datetime_from_microseconds
26+
from gcloud._helpers import _has_field
2627
from gcloud._helpers import _microseconds_from_datetime
2728
from gcloud.datastore._generated import entity_pb2 as _entity_pb2
2829
from gcloud.datastore.entity import Entity
@@ -109,7 +110,7 @@ def _get_meaning(value_pb, is_list=False):
109110
if all_meanings:
110111
raise ValueError('Different meanings set on values '
111112
'within a list_value')
112-
elif value_pb.HasField('meaning'):
113+
elif _has_field(value_pb, 'meaning'):
113114
meaning = value_pb.meaning
114115

115116
return meaning
@@ -159,7 +160,7 @@ def entity_from_protobuf(pb):
159160
:returns: The entity derived from the protobuf.
160161
"""
161162
key = None
162-
if pb.HasField('key'):
163+
if _has_field(pb, 'key'):
163164
key = key_from_protobuf(pb.key)
164165

165166
entity_props = {}
@@ -259,18 +260,18 @@ def key_from_protobuf(pb):
259260
path_args = []
260261
for element in pb.path_element:
261262
path_args.append(element.kind)
262-
if element.HasField('id'):
263+
if _has_field(element, 'id'):
263264
path_args.append(element.id)
264265
# This is safe: we expect proto objects returned will only have
265266
# one of `name` or `id` set.
266-
if element.HasField('name'):
267+
if _has_field(element, 'name'):
267268
path_args.append(element.name)
268269

269270
project = None
270-
if pb.partition_id.HasField('dataset_id'):
271+
if _has_field(pb.partition_id, 'dataset_id'):
271272
project = pb.partition_id.dataset_id
272273
namespace = None
273-
if pb.partition_id.HasField('namespace'):
274+
if _has_field(pb.partition_id, 'namespace'):
274275
namespace = pb.partition_id.namespace
275276

276277
return Key(*path_args, namespace=namespace, project=project)
@@ -350,29 +351,29 @@ def _get_value_from_value_pb(value_pb):
350351
:returns: The value provided by the Protobuf.
351352
"""
352353
result = None
353-
if value_pb.HasField('timestamp_microseconds_value'):
354+
if _has_field(value_pb, 'timestamp_microseconds_value'):
354355
microseconds = value_pb.timestamp_microseconds_value
355356
result = _datetime_from_microseconds(microseconds)
356357

357-
elif value_pb.HasField('key_value'):
358+
elif _has_field(value_pb, 'key_value'):
358359
result = key_from_protobuf(value_pb.key_value)
359360

360-
elif value_pb.HasField('boolean_value'):
361+
elif _has_field(value_pb, 'boolean_value'):
361362
result = value_pb.boolean_value
362363

363-
elif value_pb.HasField('double_value'):
364+
elif _has_field(value_pb, 'double_value'):
364365
result = value_pb.double_value
365366

366-
elif value_pb.HasField('integer_value'):
367+
elif _has_field(value_pb, 'integer_value'):
367368
result = value_pb.integer_value
368369

369-
elif value_pb.HasField('string_value'):
370+
elif _has_field(value_pb, 'string_value'):
370371
result = value_pb.string_value
371372

372-
elif value_pb.HasField('blob_value'):
373+
elif _has_field(value_pb, 'blob_value'):
373374
result = value_pb.blob_value
374375

375-
elif value_pb.HasField('entity_value'):
376+
elif _has_field(value_pb, 'entity_value'):
376377
result = entity_from_protobuf(value_pb.entity_value)
377378

378379
elif value_pb.list_value:
@@ -428,7 +429,7 @@ def _prepare_key_for_request(key_pb):
428429
:returns: A key which will be added to a request. It will be the
429430
original if nothing needs to be changed.
430431
"""
431-
if key_pb.partition_id.HasField('dataset_id'):
432+
if _has_field(key_pb.partition_id, 'dataset_id'):
432433
# We remove the dataset_id from the protobuf. This is because
433434
# the backend fails a request if the key contains un-prefixed
434435
# project. The backend fails because requests to

‎gcloud/datastore/test_connection.py

Copy file name to clipboardExpand all lines: gcloud/datastore/test_connection.py
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,8 @@ def request(self, **kw):
900900

901901

902902
def _compare_key_pb_after_request(test, key_before, key_after):
903-
test.assertFalse(key_after.partition_id.HasField('dataset_id'))
903+
from gcloud._helpers import _has_field
904+
test.assertFalse(_has_field(key_after.partition_id, 'dataset_id'))
904905
test.assertEqual(key_before.partition_id.namespace,
905906
key_after.partition_id.namespace)
906907
test.assertEqual(len(key_before.path_element),

‎gcloud/datastore/test_helpers.py

Copy file name to clipboardExpand all lines: gcloud/datastore/test_helpers.py
+8-3Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ def _callFUT(self, entity):
198198
return entity_to_protobuf(entity)
199199

200200
def _compareEntityProto(self, entity_pb1, entity_pb2):
201+
from gcloud._helpers import _has_field
201202
from gcloud.datastore.helpers import _property_tuples
202203

203204
self.assertEqual(entity_pb1.key, entity_pb2.key)
@@ -208,7 +209,7 @@ def _compareEntityProto(self, entity_pb1, entity_pb2):
208209
name1, val1 = pair1
209210
name2, val2 = pair2
210211
self.assertEqual(name1, name2)
211-
if val1.HasField('entity_value'):
212+
if _has_field(val1, 'entity_value'):
212213
self.assertEqual(val1.meaning, val2.meaning)
213214
self._compareEntityProto(val1.entity_value,
214215
val2.entity_value)
@@ -767,6 +768,8 @@ def test_prefixed(self):
767768
self.assertEqual(PREFIXED, result)
768769

769770
def test_unprefixed_bogus_key_miss(self):
771+
from gcloud._helpers import _has_field
772+
770773
UNPREFIXED = 'PROJECT'
771774
PREFIX = 's~'
772775
CONNECTION = _Connection(PREFIX, from_missing=False)
@@ -782,12 +785,14 @@ def test_unprefixed_bogus_key_miss(self):
782785
self.assertEqual(len(path_element), 1)
783786
self.assertEqual(path_element[0].kind, '__MissingLookupKind')
784787
self.assertEqual(path_element[0].id, 1)
785-
self.assertFalse(path_element[0].HasField('name'))
788+
self.assertFalse(_has_field(path_element[0], 'name'))
786789

787790
PREFIXED = PREFIX + UNPREFIXED
788791
self.assertEqual(result, PREFIXED)
789792

790793
def test_unprefixed_bogus_key_hit(self):
794+
from gcloud._helpers import _has_field
795+
791796
UNPREFIXED = 'PROJECT'
792797
PREFIX = 'e~'
793798
CONNECTION = _Connection(PREFIX, from_missing=True)
@@ -802,7 +807,7 @@ def test_unprefixed_bogus_key_hit(self):
802807
self.assertEqual(len(path_element), 1)
803808
self.assertEqual(path_element[0].kind, '__MissingLookupKind')
804809
self.assertEqual(path_element[0].id, 1)
805-
self.assertFalse(path_element[0].HasField('name'))
810+
self.assertFalse(_has_field(path_element[0], 'name'))
806811

807812
PREFIXED = PREFIX + UNPREFIXED
808813
self.assertEqual(result, PREFIXED)

‎gcloud/datastore/test_key.py

Copy file name to clipboardExpand all lines: gcloud/datastore/test_key.py
+8-4Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,9 @@ def test_completed_key_on_complete(self):
333333
self.assertRaises(ValueError, key.completed_key, 5678)
334334

335335
def test_to_protobuf_defaults(self):
336+
from gcloud._helpers import _has_field
336337
from gcloud.datastore._generated import entity_pb2
338+
337339
_KIND = 'KIND'
338340
key = self._makeOne(_KIND, project=self._DEFAULT_PROJECT)
339341
pb = key.to_protobuf()
@@ -342,15 +344,15 @@ def test_to_protobuf_defaults(self):
342344
# Check partition ID.
343345
self.assertEqual(pb.partition_id.dataset_id, self._DEFAULT_PROJECT)
344346
self.assertEqual(pb.partition_id.namespace, '')
345-
self.assertFalse(pb.partition_id.HasField('namespace'))
347+
self.assertFalse(_has_field(pb.partition_id, 'namespace'))
346348

347349
# Check the element PB matches the partial key and kind.
348350
elem, = list(pb.path_element)
349351
self.assertEqual(elem.kind, _KIND)
350352
self.assertEqual(elem.name, '')
351-
self.assertFalse(elem.HasField('name'))
353+
self.assertFalse(_has_field(elem, 'name'))
352354
self.assertEqual(elem.id, 0)
353-
self.assertFalse(elem.HasField('id'))
355+
self.assertFalse(_has_field(elem, 'id'))
354356

355357
def test_to_protobuf_w_explicit_project(self):
356358
_PROJECT = 'PROJECT-ALT'
@@ -381,12 +383,14 @@ def test_to_protobuf_w_explicit_path(self):
381383
self.assertEqual(elems[1].id, _ID)
382384

383385
def test_to_protobuf_w_no_kind(self):
386+
from gcloud._helpers import _has_field
387+
384388
key = self._makeOne('KIND', project=self._DEFAULT_PROJECT)
385389
# Force the 'kind' to be unset. Maybe `to_protobuf` should fail
386390
# on this? The backend certainly will.
387391
key._path[-1].pop('kind')
388392
pb = key.to_protobuf()
389-
self.assertFalse(pb.path_element[0].HasField('kind'))
393+
self.assertFalse(_has_field(pb.path_element[0], 'kind'))
390394

391395
def test_is_partial_no_name_or_id(self):
392396
key = self._makeOne('KIND', project=self._DEFAULT_PROJECT)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.