diff --git a/gcloud/datastore/helpers.py b/gcloud/datastore/helpers.py index c6650a5f29b5..63c6f55c8eb4 100644 --- a/gcloud/datastore/helpers.py +++ b/gcloud/datastore/helpers.py @@ -124,9 +124,7 @@ def _new_value_pb(entity_pb, name): :rtype: :class:`gcloud.datastore._generated.entity_pb2.Value` :returns: The new ``Value`` protobuf that was added to the entity. """ - property_pb = entity_pb.property.add() - property_pb.name = name - return property_pb.value + return entity_pb.properties.get_or_create(name) def _property_tuples(entity_pb): @@ -139,8 +137,7 @@ def _property_tuples(entity_pb): :returns: An iterator that yields tuples of a name and ``Value`` corresponding to properties on the entity. """ - for property_pb in entity_pb.property: - yield property_pb.name, property_pb.value + return six.iteritems(entity_pb.properties) def entity_from_protobuf(pb): diff --git a/gcloud/datastore/test_helpers.py b/gcloud/datastore/test_helpers.py index 6c6cb6088a7c..8312de407b34 100644 --- a/gcloud/datastore/test_helpers.py +++ b/gcloud/datastore/test_helpers.py @@ -29,9 +29,8 @@ def test_it(self): result = self._callFUT(entity_pb, name) self.assertTrue(isinstance(result, entity_pb2.Value)) - self.assertEqual(len(entity_pb.property), 1) - self.assertEqual(entity_pb.property[0].name, name) - self.assertEqual(entity_pb.property[0].value, result) + self.assertEqual(len(entity_pb.properties), 1) + self.assertEqual(entity_pb.properties[name], result) class Test__property_tuples(unittest2.TestCase): @@ -53,7 +52,8 @@ def test_it(self): result = self._callFUT(entity_pb) self.assertTrue(isinstance(result, types.GeneratorType)) - self.assertEqual(list(result), [(name1, val_pb1), (name2, val_pb2)]) + self.assertEqual(sorted(result), + sorted([(name1, val_pb1), (name2, val_pb2)])) class Test_entity_from_protobuf(unittest2.TestCase):