NotificationRecipientSet.remove() does not remove the person email addresses
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Critical
|
Curtis Hovey |
Bug Description
A question email job test on qastaging failed with:
line 85, in getReason
raise UnknownRecipien
UnknownRecipien
The code that prepared the subscribers recipient removed the owner:
elif question_
if self.question.owner in recipients:
return recipients
But remove() only removed the person from the person to recipient dict;
the person is still in the email address dict. The call to getEmails() uses the
later dict, which returns a user that was removed from the reason set.
Related branches
- j.c.sackett (community): Approve
- Benji York (community): Abstain
-
Diff: 2719 lines (+622/-934)14 files modifieddatabase/schema/security.cfg (+220/-212)
lib/lp/answers/browser/tests/views.txt (+0/-56)
lib/lp/answers/doc/notifications.txt (+84/-386)
lib/lp/answers/model/questionjob.py (+2/-1)
lib/lp/answers/notification.py (+22/-79)
lib/lp/answers/stories/question-confirm-url.txt (+0/-105)
lib/lp/answers/tests/test_question_notifications.py (+143/-30)
lib/lp/answers/tests/test_questionjob.py (+25/-2)
lib/lp/bugs/tests/test_bugnotification.py (+11/-9)
lib/lp/coop/answersbugs/tests/notifications-linked-bug.txt (+17/-16)
lib/lp/coop/answersbugs/tests/notifications-linked-private-bug.txt (+6/-3)
lib/lp/services/mail/doc/notification-recipient-set.txt (+72/-35)
lib/lp/services/mail/notificationrecipientset.py (+1/-0)
lib/lp/services/mail/tests/test_doc.py (+19/-0)
Changed in launchpad: | |
milestone: | none → 11.05 |
tags: | added: qa-ok |
Changed in launchpad: | |
status: | In Progress → Fix Committed |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |