diff --git a/glanceclient/openstack/common/apiclient/base.py b/glanceclient/openstack/common/apiclient/base.py index cf3eab92..c86613ee 100644 --- a/glanceclient/openstack/common/apiclient/base.py +++ b/glanceclient/openstack/common/apiclient/base.py @@ -517,8 +517,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/glanceclient/tests/unit/test_base.py b/glanceclient/tests/unit/test_base.py index 4a97de80..ddbc3d70 100644 --- a/glanceclient/tests/unit/test_base.py +++ b/glanceclient/tests/unit/test_base.py @@ -32,10 +32,16 @@ class TestBase(testtools.TestCase): id = 4 self.assertEqual(4, base.getid(TmpObject)) - def test_two_resources_with_same_id_are_equal(self): - # Two resources of the same type with the same id: equal + def test_two_resources_with_same_id_are_not_equal(self): + # 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) + + def test_two_resources_with_same_id_and_info_are_equal(self): + # 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) def test_two_resources_with_eq_info_are_equal(self):