From 3d60850aa42351a0bb0066ef579ade95df5a81ee Mon Sep 17 00:00:00 2001 From: Jonathan Piron Date: Mon, 18 Feb 2019 14:11:30 +0100 Subject: Implement __eq__ and __hash__ methods To ease lists and sets manipulations. --- gitlab/tests/test_base.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gitlab/tests') diff --git a/gitlab/tests/test_base.py b/gitlab/tests/test_base.py index 36cb63b..b29d423 100644 --- a/gitlab/tests/test_base.py +++ b/gitlab/tests/test_base.py @@ -134,3 +134,26 @@ class TestRESTObject(unittest.TestCase): self.assertIsInstance(obj.fakes, FakeManager) self.assertEqual(obj.fakes.gitlab, self.gitlab) self.assertEqual(obj.fakes._parent, obj) + + def test_equality(self): + obj1 = FakeObject(self.manager, {'id': 'foo'}) + obj2 = FakeObject(self.manager, {'id': 'foo', 'other_attr': 'bar'}) + self.assertEqual(obj1, obj2) + + def test_equality_custom_id(self): + class OtherFakeObject(FakeObject): + _id_attr = 'foo' + + obj1 = OtherFakeObject(self.manager, {'foo': 'bar'}) + obj2 = OtherFakeObject(self.manager, {'foo': 'bar', 'other_attr': 'baz'}) + self.assertEqual(obj1, obj2) + + def test_inequality(self): + obj1 = FakeObject(self.manager, {'id': 'foo'}) + obj2 = FakeObject(self.manager, {'id': 'bar'}) + self.assertNotEqual(obj1, obj2) + + def test_inequality_no_id(self): + obj1 = FakeObject(self.manager, {'attr1': 'foo'}) + obj2 = FakeObject(self.manager, {'attr1': 'bar'}) + self.assertNotEqual(obj1, obj2) -- cgit v1.2.1