NotificationRecipientSet.remove() does not remove the person email addresses

Bug #775775 reported by Curtis Hovey
6
This bug affects 1 person
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 UnknownRecipientError(person)
UnknownRecipientError: <Person at 0xb4f3690 sinzui (Curtis Hovey)>

The code that prepared the subscribers recipient removed the owner:
        elif question_recipient_set == QuestionRecipientSet.SUBSCRIBER:
            recipients = self.question.getRecipients()
            if self.question.owner in recipients:
                recipients.remove(self.question.owner)
            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.

Tags: email oops qa-ok

Related branches

Curtis Hovey (sinzui)
Changed in launchpad:
milestone: none → 11.05
Curtis Hovey (sinzui)
tags: added: qa-ok
Changed in launchpad:
status: In Progress → Fix Committed
Curtis Hovey (sinzui)
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.