def test_toggle_institution(self): email = '*****@*****.**' other = '*****@*****.**' self.assertListEqual([email] + list(alternative_emails(email)), [email, other]) self.assertListEqual([other] + list(alternative_emails(other)), [other, email]) self.assertListEqual( list(alternative_emails('*****@*****.**')), [])
def dispatch(self, request, *args, **kwargs): if not ( request.user.is_staff or self.mailing_list.is_owner(request.user.email) or any(self.mailing_list.is_owner(email) for email in alternative_emails(request.user.email)) ): return self.handle_no_permission() return super().dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs): email = self.request.user.email kwargs.setdefault( "memberships", connection.get_owner_and_memberships(email, *alternative_emails(email))) kwargs.setdefault("domain_addon", "@" + str(connection.domain)) return super().get_context_data(**kwargs)
def get_initial(self): initial_mail = None if self.request.user.is_authenticated: try: initial_mail = next(test_mail for test_mail in alternative_emails(self.request.user.email) if self.mailing_list.is_member(test_mail)) except StopIteration: initial_mail = self.request.user.email return {"email": initial_mail}
def test_alumni_alternatives(self): newstatus_mails = [ '*****@*****.**', '*****@*****.**' ] oldstatus_mails = [ '*****@*****.**', '*****@*****.**' ] both_sorted = sorted(newstatus_mails + oldstatus_mails) in_old_status = '*****@*****.**' for email in newstatus_mails: self.assertListEqual( sorted([email] + list(alternative_emails(email))), both_sorted) self.assertListEqual(list(alternative_emails(in_old_status)), ['*****@*****.**']) self.assertListEqual( list(alternative_emails('*****@*****.**')), [])
def _all_mails(self, email): yield email yield from alternative_emails(email)