Skip to content

Commit

Permalink
Merge pull request #291 from dhermes/fix-key-error-in-entity-save
Browse files Browse the repository at this point in the history
Only using 'id' OR 'name' from pb path in datastore.Entity.save.
  • Loading branch information
dhermes committed Oct 23, 2014
2 parents 8a21978 + 6c3b983 commit b6d3e74
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
9 changes: 6 additions & 3 deletions gcloud/datastore/entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,12 @@ def save(self):
transaction.add_auto_id_entity(self)

if isinstance(key_pb, datastore_pb.Key):
path = [
{'kind': element.kind, 'id': element.id, 'name': element.name}
for element in key_pb.path_element]
path = []
for element in key_pb.path_element:
key_part = {}
for descriptor, value in element._fields.items():
key_part[descriptor.name] = value
path.append(key_part)
# Update the path (which may have been altered).
self._key = key.path(path)

Expand Down
2 changes: 1 addition & 1 deletion gcloud/datastore/test_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def test_save_w_returned_key(self):
self.assertEqual(entity['foo'], 'Foo')
self.assertEqual(connection._saved,
(_DATASET_ID, 'KEY', {'foo': 'Foo'}))
self.assertEqual(key._path, [{'kind': _KIND, 'id': _ID, 'name': ''}])
self.assertEqual(key._path, [{'kind': _KIND, 'id': _ID}])

def test_delete_no_key(self):
from gcloud.datastore.entity import NoKey
Expand Down

0 comments on commit b6d3e74

Please sign in to comment.