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( keystone_user={}, task_type="edit_roles", ) action = SendAdditionalEmailAction({}, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) task.cache["additional_emails"] = [ "*****@*****.**", "*****@*****.**" ] action.approve() self.assertEqual(action.valid, True) self.assertEqual(len(mail.outbox), 0) self.assertTrue( "Unable to send additional email. Stage: approve" in action.action.task.action_notes["SendAdditionalEmailAction"][1]) action.submit({}) self.assertEqual(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(keystone_user={}) action = SendAdditionalEmailAction({}, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) task.cache["additional_emails"] = [ "*****@*****.**", "*****@*****.**" ] action.approve() self.assertEqual(action.valid, True) self.assertEqual(len(mail.outbox), 1) self.assertEqual(set(mail.outbox[0].to), set(["*****@*****.**", "*****@*****.**"])) action.submit({}) self.assertEqual(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(keystone_user={}) action = SendAdditionalEmailAction({}, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) action.approve() self.assertEqual(action.valid, True) self.assertEqual(len(mail.outbox), 0) action.submit({}) self.assertEqual(action.valid, True)
def test_send_additional_email_email_in_config(self): """ Tests sending an additional email with the address placed in the task cache. """ task = Task.objects.create(keystone_user={}) action = SendAdditionalEmailAction({}, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) action.approve() self.assertEqual(action.valid, True) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].to, ["*****@*****.**"]) action.submit({}) self.assertEqual(action.valid, True) self.assertEqual(len(mail.outbox), 1)