Skip to content

Commit 6d2a5a7

Browse files
committed
Adding back implicit get_entities() to datastore.__init__.
1 parent 1682683 commit 6d2a5a7

3 files changed

Lines changed: 47 additions & 3 deletions

File tree

gcloud/datastore/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,20 @@ def _require_connection():
158158
return _implicit_environ.CONNECTION
159159

160160

161+
def get_entities(keys):
162+
"""Retrieves entities from implied dataset, along with their attributes.
163+
164+
:type keys: list of :class:`gcloud.datastore.key.Key`
165+
:param keys: The name of the item to retrieve.
166+
167+
:rtype: list of :class:`gcloud.datastore.entity.Entity`
168+
:returns: The requested entities.
169+
"""
170+
dataset = _require_dataset()
171+
connection = _require_connection()
172+
return connection_module.get_entities(keys, connection, dataset.id())
173+
174+
161175
def allocate_ids(incomplete_key, num_ids):
162176
"""Allocates a list of IDs from a partial key.
163177

gcloud/datastore/test___init__.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,38 @@ def test__require_connection_value_set(self):
189189
stored_connection = gcloud.datastore._require_connection()
190190
self.assertTrue(stored_connection is FAKE_CONNECTION)
191191

192+
def test_get_entities(self):
193+
import gcloud.datastore
194+
from gcloud.datastore import _implicit_environ
195+
from gcloud.datastore import connection as connection_module
196+
from gcloud.datastore.test_entity import _Dataset
197+
from gcloud._testing import _Monkey
198+
199+
_called_keys = []
200+
_called_connection = []
201+
_called_dataset_id = []
202+
RETURN_VALUE = object()
203+
204+
def mock_get_entities(keys, connection, dataset_id):
205+
_called_keys.append(keys)
206+
_called_connection.append(connection)
207+
_called_dataset_id.append(dataset_id)
208+
return RETURN_VALUE
209+
210+
DUMMY_KEYS = object()
211+
CUSTOM_CONNECTION = object()
212+
CUSTOM_DATASET = _Dataset()
213+
with _Monkey(connection_module, get_entities=mock_get_entities):
214+
with _Monkey(_implicit_environ, DATASET=CUSTOM_DATASET,
215+
CONNECTION=CUSTOM_CONNECTION):
216+
result = gcloud.datastore.get_entities(DUMMY_KEYS)
217+
218+
# Compare results.
219+
self.assertEqual(result, RETURN_VALUE)
220+
self.assertEqual(_called_keys, [DUMMY_KEYS])
221+
self.assertEqual(_called_connection, [CUSTOM_CONNECTION])
222+
self.assertEqual(_called_dataset_id, [CUSTOM_DATASET.id()])
223+
192224
def test_allocate_ids(self):
193225
import gcloud.datastore
194226
from gcloud.datastore import _implicit_environ

regression/datastore.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import unittest2
1919

2020
from gcloud import datastore
21-
from gcloud.datastore.connection import get_entities
2221
from gcloud.datastore.entity import Entity
2322
from gcloud.datastore.key import Key
2423
from gcloud.datastore.query import Query
@@ -139,8 +138,7 @@ def test_save_multiple(self):
139138
self.case_entities_to_delete.append(entity2)
140139

141140
keys = [entity1.key(), entity2.key()]
142-
connection = datastore.get_connection()
143-
matches = get_entities(keys, connection, DATASET_ID)
141+
matches = datastore.get_entities(keys)
144142
self.assertEqual(len(matches), 2)
145143

146144
def test_empty_kind(self):

0 commit comments

Comments
 (0)