traverse_subscription is buggy:
try: person = getUtility(IPersonSet).getByName(person_name) except NotFoundError: return None
getByName doesn't raise NotFoundError when the name doesn't exist but return None instead, thus passing None as the subscriber name in getBySubscriber.
traverse_ subscription is buggy:
try: IPersonSet) .getByName( person_ name)
person = getUtility(
except NotFoundError:
return None
getByName doesn't raise NotFoundError when the name doesn't exist but return None instead, thus passing None as the subscriber name in getBySubscriber.