# HG changeset patch # User Sverre Rabbelier # Date 1253304530 -7200 # Node ID 05014496b8f9aed4bf7c20deae2b9e4813cbf2ac # Parent 34c6737e77a0c5520cee4577ca24d0c57e83a9ed Throw an exception when registering an already registered right diff -r 34c6737e77a0 -r 05014496b8f9 app/soc/modules/core.py --- a/app/soc/modules/core.py Fri Sep 18 21:50:54 2009 +0200 +++ b/app/soc/modules/core.py Fri Sep 18 22:08:50 2009 +0200 @@ -93,6 +93,20 @@ super(NonUniqueService, self).__init__(msg) +class AlreadyRegisteredRight(Error): + """Error raised when a right is registrated a second time + """ + + ALREADY_REGISTERED_RIGHT_FMT = "Tried to register right '%s' a second time." + + def __init__(self, right): + """Instantiates a new exception with a customized message. + """ + + msg = self.ALREADY_REGISTERED_RIGHT_FMT % right + super(AlreadyRegisteredRight, self).__init__(msg) + + class Core(object): """The core handler that controls the Melange API. """ @@ -327,4 +341,7 @@ """Registers the specified right. """ + if key in self.rights: + raise AlreadyRegisteredRight(key) + self.rights[key] = value