@@ -101,15 +101,23 @@ def test_get_no_keys(self):
101101 results = self ._callFUT ([])
102102 self .assertEqual (results , [])
103103
104- def test_get_miss (self ):
104+ def _miss_helper (self , expected_results , use_list = True ):
105105 from gcloud .datastore .key import Key
106106 from gcloud .datastore .test_connection import _Connection
107107
108108 DATASET_ID = 'DATASET'
109109 connection = _Connection ()
110110 key = Key ('Kind' , 1234 , dataset_id = DATASET_ID )
111- results = self ._callFUT ([key ], connection = connection )
112- self .assertEqual (results , [])
111+ if use_list :
112+ key = [key ]
113+ results = self ._callFUT (key , connection = connection )
114+ self .assertEqual (results , expected_results )
115+
116+ def test_get_miss (self ):
117+ self ._miss_helper ([], use_list = True )
118+
119+ def test_get_miss_single_key (self ):
120+ self ._miss_helper (None , use_list = False )
113121
114122 def test_get_miss_w_missing (self ):
115123 from gcloud .datastore import datastore_v1_pb2 as datastore_pb
@@ -240,6 +248,33 @@ def test_get_hit_multiple_keys_different_dataset(self):
240248 with self .assertRaises (ValueError ):
241249 self ._callFUT ([key1 , key2 ], connection = object ())
242250
251+ def test_get_hit_single_key (self ):
252+ from gcloud .datastore .key import Key
253+ from gcloud .datastore .test_connection import _Connection
254+
255+ DATASET_ID = 'DATASET'
256+ KIND = 'Kind'
257+ ID = 1234
258+ PATH = [{'kind' : KIND , 'id' : ID }]
259+
260+ # Make a found entity pb to be returned from mock backend.
261+ entity_pb = self ._make_entity_pb (DATASET_ID , KIND , ID ,
262+ 'foo' , 'Foo' )
263+
264+ # Make a connection to return the entity pb.
265+ connection = _Connection (entity_pb )
266+
267+ key = Key (KIND , ID , dataset_id = DATASET_ID )
268+ result = self ._callFUT (key , connection = connection )
269+ new_key = result .key
270+
271+ # Check the returned value is as expected.
272+ self .assertFalse (new_key is key )
273+ self .assertEqual (new_key .dataset_id , DATASET_ID )
274+ self .assertEqual (new_key .path , PATH )
275+ self .assertEqual (list (result ), ['foo' ])
276+ self .assertEqual (result ['foo' ], 'Foo' )
277+
243278 def test_get_implicit (self ):
244279 from gcloud .datastore import _implicit_environ
245280 from gcloud .datastore .key import Key
0 commit comments