8000 Merge pull request #291 from dhermes/fix-key-error-in-entity-save · googleapis/google-cloud-python@b6d3e74 · GitHub
[go: up one dir, main page]

Skip to content

Commit b6d3e74

Browse files
committed
Merge pull request #291 from dhermes/fix-key-error-in-entity-save
Only using 'id' OR 'name' from pb path in datastore.Entity.save.
2 parents 8a21978 + 6c3b983 commit b6d3e74

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

‎< 8000 !-- -->gcloud/datastore/entity.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,12 @@ def save(self):
222222
transaction.add_auto_id_entity(self)
223223

224224
if isinstance(key_pb, datastore_pb.Key):
225-
path = [
226-
{'kind': element.kind, 'id': element.id, 'name': element.name}
227-
for element in key_pb.path_element]
225+
path = []
226+
for element in key_pb.path_element:
227+
key_part = {}
228+
for descriptor, value in element._fields.items():
229+
key_part[descriptor.name] = value
230+
path.append(key_part)
228231
# Update the path (which may have been altered).
229232
self._key = key.path(path)
230233

gcloud/datastore/test_entity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def test_save_w_returned_key(self):
182182
self.assertEqual(entity['foo'], 'Foo')
183183
self.assertEqual(connection._saved,
184184
(_DATASET_ID, 'KEY', {'foo': 'Foo'}))
185-
self.assertEqual(key._path, [{'kind': _KIND, 'id': _ID, 'name': ''}])
185+
self.assertEqual(key._path, [{'kind': _KIND, 'id': _ID}])
186186

187187
def test_delete_no_key(self):
188188
from gcloud.datastore.entity import NoKey

0 commit comments

Comments
 (0)
0