diff --git a/keystoneclient/base.py b/keystoneclient/base.py index a03eceeea..9676b57ce 100644 --- a/keystoneclient/base.py +++ b/keystoneclient/base.py @@ -521,8 +521,6 @@ class Resource(object): # two resources of different types are not equal if not isinstance(other, self.__class__): return False - if hasattr(self, 'id') and hasattr(other, 'id'): - return self.id == other.id return self._info == other._info def is_loaded(self): diff --git a/keystoneclient/tests/unit/test_base.py b/keystoneclient/tests/unit/test_base.py index 601aa33fd..38644c01f 100644 --- a/keystoneclient/tests/unit/test_base.py +++ b/keystoneclient/tests/unit/test_base.py @@ -53,9 +53,14 @@ class BaseTest(utils.TestCase): self.assertRaises(AttributeError, getattr, f, 'blahblah') def test_eq(self): - # Two resources of the same type with the same id: equal + # Two resources with same ID: never equal if their info is not equal r1 = base.Resource(None, {'id': 1, 'name': 'hi'}) r2 = base.Resource(None, {'id': 1, 'name': 'hello'}) + self.assertNotEqual(r1, r2) + + # Two resources with same ID: equal if their info is equal + r1 = base.Resource(None, {'id': 1, 'name': 'hello'}) + r2 = base.Resource(None, {'id': 1, 'name': 'hello'}) self.assertEqual(r1, r2) # Two resoruces of different types: never equal