diff --git a/etiquette/exceptions.py b/etiquette/exceptions.py index b070a69..fac32af 100644 --- a/etiquette/exceptions.py +++ b/etiquette/exceptions.py @@ -109,6 +109,9 @@ class UserExists(Exists): # TAG ERRORS +class CantGroupSelf(EtiquetteException): + error_message = 'Cannot group {} into itself.' + class CantSynonymSelf(EtiquetteException): error_message = 'Cannot apply synonym to self.' diff --git a/etiquette/objects.py b/etiquette/objects.py index 8b3ae08..5c00b92 100644 --- a/etiquette/objects.py +++ b/etiquette/objects.py @@ -87,6 +87,9 @@ class GroupableMixin: def add_child(self, member, *, commit=True): self.assert_same_type(member) + if member == self: + raise exceptions.CantGroupSelf(self) + if self.has_child(member): return