Skip to content

Commit

Permalink
Add tests for 'Entity.__{eq,ne}__' w/ keys/entities as values.
Browse files Browse the repository at this point in the history
  • Loading branch information
tseaver committed Feb 12, 2015
1 parent 7d7c94a commit 680800d
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 1 deletion.
2 changes: 1 addition & 1 deletion gcloud/datastore/entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def __eq__(self, other):
return NotImplemented

return (self.key == other.key and
dict(self) == dict(other))
super(Entity, self).__eq__(other))

def __ne__(self, other):
"""Compare two entities for inequality.
Expand Down
52 changes: 52 additions & 0 deletions gcloud/datastore/test_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,58 @@ def test___eq_____ne___w_same_keys_different_props(self):
self.assertFalse(entity1 == entity2)
self.assertTrue(entity1 != entity2)

def test___eq_____ne___w_same_keys_props_w_equiv_keys_as_value(self):
from gcloud.datastore.key import Key
key1 = Key(_KIND, _ID, dataset_id=_DATASET_ID)
key2 = Key(_KIND, _ID, dataset_id=_DATASET_ID)
entity1 = self._makeOne(key=key1)
entity1['some_key'] = key1
entity2 = self._makeOne(key=key1)
entity2['some_key'] = key2
self.assertTrue(entity1 == entity2)
self.assertFalse(entity1 != entity2)

def test___eq_____ne___w_same_keys_props_w_diff_keys_as_value(self):
from gcloud.datastore.key import Key
_ID1 = 1234
_ID2 = 2345
key1 = Key(_KIND, _ID1, dataset_id=_DATASET_ID)
key2 = Key(_KIND, _ID2, dataset_id=_DATASET_ID)
entity1 = self._makeOne(key=key1)
entity1['some_key'] = key1
entity2 = self._makeOne(key=key1)
entity2['some_key'] = key2
self.assertFalse(entity1 == entity2)
self.assertTrue(entity1 != entity2)

def test___eq_____ne___w_same_keys_props_w_equiv_entities_as_value(self):
from gcloud.datastore.key import Key
key = Key(_KIND, _ID, dataset_id=_DATASET_ID)
entity1 = self._makeOne(key=key)
sub1 = self._makeOne()
sub1.update({'foo': 'Foo'})
entity1['some_entity'] = sub1
entity2 = self._makeOne(key=key)
sub2 = self._makeOne()
sub2.update({'foo': 'Foo'})
entity2['some_entity'] = sub2
self.assertTrue(entity1 == entity2)
self.assertFalse(entity1 != entity2)

def test___eq_____ne___w_same_keys_props_w_diff_entities_as_value(self):
from gcloud.datastore.key import Key
key = Key(_KIND, _ID, dataset_id=_DATASET_ID)
entity1 = self._makeOne(key=key)
sub1 = self._makeOne()
sub1.update({'foo': 'Foo'})
entity1['some_entity'] = sub1
entity2 = self._makeOne(key=key)
sub2 = self._makeOne()
sub2.update({'foo': 'Bar'})
entity2['some_entity'] = sub2
self.assertFalse(entity1 == entity2)
self.assertTrue(entity1 != entity2)

def test___repr___no_key_empty(self):
entity = self._makeOne()
self.assertEqual(repr(entity), '<Entity {}>')
Expand Down

0 comments on commit 680800d

Please sign in to comment.