def testAllAdminsAreSentEmails(self): """Tests that all admins are sent emails if the org is accepted.""" # list of admins to which emails should be sent admins = [self.profile] for _ in range(_ADMIN_NUMBER): admins.append( profile_utils.seedNDBProfile(self.program.key(), admin_for=[self.org.key])) org_logic.setStatus(self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.ACCEPTED, org_admins=admins) # check that acceptance / rejection email have been sent for admin in admins: self.assertEmailSent(to=admin.contact.email) # check that welcome emials have been sent for admin in admins: self.assertEmailSent( to=admin.contact.email, subject=profile_logic._DEF_ORG_MEMBER_WELCOME_MAIL_SUBJECT)
def updateOrganizationStatus(): """Transactionally updates organization status.""" # only organizations defined for the specified program should be processed organization = org_key.get() if organization.program.to_old_key() == program_key: if organization.status == org_model.Status.PRE_ACCEPTED: org_logic.setStatus( organization, program, site, program_messages, org_model.Status.ACCEPTED, links.ABSOLUTE_LINKER, url_names, org_admins=org_admins) elif organization.status == org_model.Status.PRE_REJECTED: org_logic.setStatus( organization, program, site, program_messages, org_model.Status.REJECTED, links.ABSOLUTE_LINKER, url_names, org_admins=org_admins)
def testPreRejectOrganization(self): """Tests that organization is successfully pre-accepted.""" org = org_logic.setStatus( self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.PRE_REJECTED, org_admins=[self.profile]) self.assertEqual(org.status, org_model.Status.PRE_REJECTED)
def testRejectOrganization(self): """Tests that organization is successfully rejected.""" org = org_logic.setStatus( self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.REJECTED, org_admins=[self.profile]) self.assertEqual(org.status, org_model.Status.REJECTED) self.assertEmailSent(to=self.profile.contact.email)
def testPreRejectOrganization(self): """Tests that organization is successfully pre-accepted.""" org = org_logic.setStatus(self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.PRE_REJECTED, org_admins=[self.profile]) self.assertEqual(org.status, org_model.Status.PRE_REJECTED)
def handle(self, data, check, mutator): """See form_handler.FormHandler.handle for specification.""" post_data = data.POST.get("data") if not post_data: raise exception.BadRequest(message="Missing data.") parsed_data = json.loads(post_data) for org_key_id, properties in parsed_data.iteritems(): org_key = ndb.Key(data.models.ndb_org_model._get_kind(), org_key_id) new_status = _STATUS_ID_TO_ENUM_MAP.get(properties.get("status")) if not new_status: raise exception.BadRequest(message="Missing or invalid new status in POST data.") else: organization = org_key.get() org_logic.setStatus( organization, data.program, data.site, data.program.getProgramMessages(), new_status ) return http.HttpResponse()
def testRejectOrganization(self): """Tests that organization is successfully rejected.""" org = org_logic.setStatus(self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.REJECTED, org_admins=[self.profile]) self.assertEqual(org.status, org_model.Status.REJECTED) self.assertEmailSent(to=self.profile.contact.email)
def handle(self, data, check, mutator): """See form_handler.FormHandler.handle for specification.""" post_data = data.POST.get('data') if not post_data: raise exception.BadRequest(message='Missing data.') parsed_data = json.loads(post_data) for org_key_id, properties in parsed_data.iteritems(): org_key = ndb.Key( data.models.ndb_org_model._get_kind(), org_key_id) new_status = _STATUS_ID_TO_ENUM_MAP.get(properties.get('status')) if not new_status: raise exception.BadRequest( message='Missing or invalid new status in POST data.') else: organization = org_key.get() org_logic.setStatus(organization, data.program, data.site, data.program.getProgramMessages(), new_status) return http.HttpResponse()
def testAcceptOrganization(self): """Tests that organization is successfully accepted.""" org = org_logic.setStatus( self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.ACCEPTED, org_admins=[self.profile]) self.assertEqual(org.status, org_model.Status.ACCEPTED) self.assertEmailSent(to=self.profile.contact.email) self.assertEmailSent( to=self.profile.contact.email, subject=profile_logic._DEF_ORG_MEMBER_WELCOME_MAIL_SUBJECT)
def testAllAdminsAreSentEmails(self): """Tests that all admins are sent emails if the org is accepted.""" # list of admins to which emails should be sent admins = [self.profile] for _ in range(_ADMIN_NUMBER): admins.append(profile_utils.seedNDBProfile( self.program.key(), admin_for=[self.org.key])) org_logic.setStatus( self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.ACCEPTED, org_admins=admins) # check that acceptance / rejection email have been sent for admin in admins: self.assertEmailSent(to=admin.contact.email) # check that welcome emials have been sent for admin in admins: self.assertEmailSent( to=admin.contact.email, subject=profile_logic._DEF_ORG_MEMBER_WELCOME_MAIL_SUBJECT)
def testAcceptOrganization(self): """Tests that organization is successfully accepted.""" org = org_logic.setStatus(self.org, self.program, self.site, self.program.getProgramMessages(), org_model.Status.ACCEPTED, org_admins=[self.profile]) self.assertEqual(org.status, org_model.Status.ACCEPTED) self.assertEmailSent(to=self.profile.contact.email) self.assertEmailSent( to=self.profile.contact.email, subject=profile_logic._DEF_ORG_MEMBER_WELCOME_MAIL_SUBJECT)
def updateOrganizationStatus(): """Transactionally updates organization status.""" # only organizations defined for the specified program should be processed organization = org_key.get() if organization.program.to_old_key() == program_key: if organization.status == org_model.Status.PRE_ACCEPTED: org_logic.setStatus(organization, program, site, program_messages, org_model.Status.ACCEPTED, links.ABSOLUTE_LINKER, url_names, org_admins=org_admins) elif organization.status == org_model.Status.PRE_REJECTED: org_logic.setStatus(organization, program, site, program_messages, org_model.Status.REJECTED, links.ABSOLUTE_LINKER, url_names, org_admins=org_admins)