From dd20cb6f545815de33587dab69df247f865324c6 Mon Sep 17 00:00:00 2001
From: Christopher Bohn <bohn@unl.edu>
Date: Tue, 17 Sep 2019 11:31:39 -0500
Subject: [PATCH] Added equality operators and blacklist/graylist compatibility
checks.
---
canvas_classes.py | 9 +++++++++
composite_user.py | 18 ++++++++++++++++++
gitlab_classes.py | 9 +++++++++
3 files changed, 36 insertions(+)
diff --git a/canvas_classes.py b/canvas_classes.py
index a9366dd..03f52a9 100644
--- a/canvas_classes.py
+++ b/canvas_classes.py
@@ -42,6 +42,15 @@ class CanvasUser:
username = self.get_username()
return f'@{username}'
+ def __eq__(self, other):
+ if isinstance(other, CanvasUser):
+ return self.get_username() == other.get_username()
+ else:
+ return False
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
"""
// A Canvas user, e.g. a student, teacher, administrator, observer, etc.
diff --git a/composite_user.py b/composite_user.py
index 49bfb05..bf2d485 100644
--- a/composite_user.py
+++ b/composite_user.py
@@ -48,12 +48,30 @@ class CompositeUser:
def discard_team(self):
self.candidate_teammates = None
+ def has_blacklist(self):
+ return len(self.blacklist) > 0
+
+ def is_blacklist_compatible(self, other):
+ return other not in self.blacklist
+
+ def is_graylist_compatible(self, other):
+ return other not in self.graylist
+
def __repr__(self):
if self.canvas_email == self.gitlab_email:
return f'{self.readable_name} <{self.canvas_email}>'
else:
return f'{self.readable_name} <{self.canvas_email}> <{self.gitlab_email}>'
+ def __eq__(self, other):
+ if isinstance(other, CompositeUser):
+ return self.canvas_username() == other.canvas_username()
+ else:
+ return False
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
@staticmethod
def get_user(username_or_email):
return CompositeUser.instances[username_or_email]
diff --git a/gitlab_classes.py b/gitlab_classes.py
index 7469f46..cc3d2cf 100644
--- a/gitlab_classes.py
+++ b/gitlab_classes.py
@@ -45,6 +45,15 @@ class GitlabUser:
username = self.get_username()
return f'@{username}'
+ def __eq__(self, other):
+ if isinstance(other, GitlabUser):
+ return self.get_username() == other.get_username()
+ else:
+ return False
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
class Issue:
def __init__(self, issue):
--
GitLab