mirror of
https://github.com/status-im/PyGithub.git
synced 2026-08-31 10:51:14 +00:00
Implement hash for CompletableGithubObject (#1922)
Since CompletableGithubObject already uses its URL attribute to implement equality, extend it to also use that attribute for hashing. Fixes #1826
This commit is contained in:
@@ -286,6 +286,9 @@ class CompletableGithubObject(GithubObject):
|
||||
def __eq__(self, other):
|
||||
return other.__class__ is self.__class__ and other._url.value == self._url.value
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self._url.value)
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self == other
|
||||
|
||||
|
||||
+2
-4
@@ -30,16 +30,14 @@ class Equality(Framework.TestCase):
|
||||
def testUserEquality(self):
|
||||
u1 = self.g.get_user("jacquev6")
|
||||
u2 = self.g.get_user("jacquev6")
|
||||
self.assertTrue(u1 == u2)
|
||||
self.assertFalse(u1 != u2)
|
||||
self.assertEqual(u1, u2)
|
||||
self.assertEqual(hash(u1), hash(u2))
|
||||
|
||||
def testUserDifference(self):
|
||||
u1 = self.g.get_user("jacquev6")
|
||||
u2 = self.g.get_user("OddBloke")
|
||||
self.assertFalse(u1 == u2)
|
||||
self.assertTrue(u1 != u2)
|
||||
self.assertNotEqual(u1, u2)
|
||||
self.assertNotEqual(hash(u1), hash(u2))
|
||||
|
||||
def testBranchEquality(self):
|
||||
# Erf, equality of NonCompletableGithubObjects will be difficult to implement
|
||||
|
||||
Reference in New Issue
Block a user