def test_send_additional_email_fail(self): """ Tests that a failure to send an additional email doesn't cause it to become invalid or break. """ task = Task.objects.create( ip_address="0.0.0.0", keystone_user={}, task_type='edit_roles', ) # setup settings action = SendAdditionalEmailAction({}, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, True) task.cache["additional_emails"] = [ "*****@*****.**", "*****@*****.**" ] action.post_approve() self.assertEquals(action.valid, True) self.assertEqual(len(mail.outbox), 0) self.assertTrue( "Unable to send additional email. Stage: token" in action.action.task.action_notes['SendAdditionalEmailAction'][1]) action.submit({}) self.assertEquals(action.valid, True)
def test_send_additional_email_task_cache(self): """ Tests sending an additional email with the address placed in the task cache. """ task = Task.objects.create(ip_address="0.0.0.0", keystone_user={}) # setup settings action = SendAdditionalEmailAction({}, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, True) task.cache["additional_emails"] = [ "*****@*****.**", "*****@*****.**" ] action.post_approve() self.assertEquals(action.valid, True) self.assertEqual(len(mail.outbox), 1) self.assertEqual(set(mail.outbox[0].to), set(["*****@*****.**", "*****@*****.**"])) action.submit({}) self.assertEquals(action.valid, True) self.assertEqual(len(mail.outbox), 1)
def test_send_additional_email_task_cache_none_set(self): """ Tests sending an additional email with 'email_task_cache' set but no address placed in the task cache. """ task = Task.objects.create(ip_address="0.0.0.0", keystone_user={}) # setup settings action = SendAdditionalEmailAction({}, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, True) action.post_approve() self.assertEquals(action.valid, True) self.assertEqual(len(mail.outbox), 0) action.submit({}) self.assertEquals(action.valid, True)
def test_send_additional_email_email_in_settings(self): """ Tests sending an additional email with the address placed in the task cache. """ task = Task.objects.create(ip_address="0.0.0.0", keystone_user={}) # setup settings action = SendAdditionalEmailAction({}, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, True) action.post_approve() self.assertEquals(action.valid, True) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].to, ["*****@*****.**"]) action.submit({}) self.assertEquals(action.valid, True) self.assertEqual(len(mail.outbox), 1)