@@ -20,7 +20,6 @@ class TestKey(unittest2.TestCase):
2020 _DEFAULT_DATASET = 'DATASET'
2121
2222 def setUp (self ):
23-
2423 from gcloud .datastore import _implicit_environ
2524 self ._replaced_dataset_id = _implicit_environ .DATASET_ID
2625 _implicit_environ .DATASET_ID = None
@@ -291,3 +290,58 @@ def test_parent_multiple_calls(self):
291290 self .assertEqual (parent .path , _PARENT_PATH )
292291 new_parent = key .parent
293292 self .assertTrue (parent is new_parent )
293+
294+ def test___eq__bad_type (self ):
295+ key = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET )
296+ self .assertNotEqual (key , None )
297+ self .assertNotEqual (key , object ())
298+ self .assertNotEqual (None , key )
299+
300+ def test___eq__same_value (self ):
301+ key1 = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET )
302+ key2 = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET )
303+ self .assertFalse (key1 is key2 )
304+ self .assertEqual (key1 , key2 )
305+
306+ def test___eq__different_dataset (self ):
307+ ALT_DATASET = 'DATASET-ALT'
308+ key1 = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET )
309+ key2 = self ._makeOne ('KIND' , dataset_id = ALT_DATASET )
310+
311+ self .assertNotEqual (ALT_DATASET , self ._DEFAULT_DATASET )
312+ self .assertNotEqual (key1 , key2 )
313+
314+ def test___eq__different_path (self ):
315+ key1 = self ._makeOne ('KIND' , 10 , dataset_id = self ._DEFAULT_DATASET )
316+ key2 = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET )
317+ self .assertNotEqual (key1 , key2 )
318+
319+ def test___eq__different_namespace (self ):
320+ key1 = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET ,
321+ namespace = 'NAMESPACE' )
322+ key2 = self ._makeOne ('KIND' , dataset_id = self ._DEFAULT_DATASET )
323+ self .assertNotEqual (key1 , key2 )
324+
325+
326+ class Test__dataset_ids_equal (unittest2 .TestCase ):
327+
328+ def _callFUT (self , dataset_id1 , dataset_id2 ):
329+ from gcloud .datastore .key import _dataset_ids_equal
330+ return _dataset_ids_equal (dataset_id1 , dataset_id2 )
331+
332+ def test_identical_prefixed (self ):
333+ self .assertTrue (self ._callFUT ('s~foo' , 's~foo' ))
334+ self .assertTrue (self ._callFUT ('e~bar' , 'e~bar' ))
335+
336+ def test_different_prefixed (self ):
337+ self .assertFalse (self ._callFUT ('s~foo' , 's~bar' ))
338+ self .assertFalse (self ._callFUT ('s~foo' , 'e~foo' ))
339+
340+ def test_all_unprefixed (self ):
341+ self .assertTrue (self ._callFUT ('foo' , 'foo' ))
342+ self .assertFalse (self ._callFUT ('foo' , 'bar' ))
343+
344+ def test_unprefixed_with_prefixed (self ):
345+ self .assertTrue (self ._callFUT ('foo' , 's~foo' ))
346+ self .assertTrue (self ._callFUT ('foo' , 'e~foo' ))
347+ self .assertFalse (self ._callFUT ('foo' , 's~bar' ))
0 commit comments