def test_send_email(self, instance_subject, on_prod, on_qa, on_dev, on_local): """Test basic email function.""" constants.ON_PROD = on_prod constants.ON_QA = on_qa constants.ON_DEV = on_dev constants.ON_LOCAL = on_local with mock.patch.object(mail, 'send_mail') as mock_gae_sendmail: send_email._send_email(**self.default_kwargs) self.default_kwargs['subject'] = (instance_subject + self.default_kwargs['subject']) mock_gae_sendmail.assert_called_once_with(**self.default_kwargs)
def test_send_email(self, mock_logerror, mock_logdebug, mock_gae_sendmail): """Test basic email function.""" # Dev, so we only log. send_email.constants.ON_PROD = False send_email._send_email(False, **self.default_kwargs) assert mock_logdebug.called assert not mock_gae_sendmail.called # Dev but force send. mock_logdebug.reset_mock() send_email.constants.ON_PROD = False send_email._send_email(True, **self.default_kwargs) assert not mock_logdebug.called assert mock_gae_sendmail.called # Kneel before Prod. mock_logdebug.reset_mock() mock_gae_sendmail.reset_mock() send_email.constants.ON_PROD = True send_email._send_email(True, **self.default_kwargs) assert mock_gae_sendmail.called # Exception raised by GAE's send_mail function. send_email.constants.ON_PROD = True mock_gae_sendmail.side_effect = send_email.mail.InvalidEmailError send_email._send_email(True, **self.default_kwargs) assert mock_logerror.called
def test_send_email(self, instance_subject, on_prod, on_qa, on_dev, on_local): """Test basic email function.""" constants.ON_PROD = on_prod constants.ON_QA = on_qa constants.ON_DEV = on_dev constants.ON_LOCAL = on_local with mock.patch.object(taskqueue, 'add') as mock_taskqueue_add: send_email._send_email(**self.default_kwargs) self.default_kwargs['subject'] = (instance_subject + self.default_kwargs['subject']) mock_taskqueue_add.assert_called_once_with( queue_name='send-email', params=self.default_kwargs, target='default')
def test_force_send(self, mock_gae_sendmail): """Tests Dev/Local/QA modification of subject field.""" send_email.constants.ON_DEV = True send_email.constants.ON_LOCAL = False send_email.constants.ON_PROD = False send_email.constants.ON_QA = False # Dev send_email._send_email(force_send=True, **self.default_kwargs) # Local send_email.constants.ON_DEV = False send_email.constants.ON_LOCAL = True send_email._send_email(force_send=True, **self.default_kwargs) # QA send_email.constants.ON_LOCAL = False send_email.constants.ON_QA = True send_email._send_email(force_send=True, **self.default_kwargs) expected_calls = [ mock.call(html=self.default_kwargs['html'], body=self.default_kwargs['body'], to=self.default_kwargs['to'], sender='noreply@{}'.format(loanertest.USER_DOMAIN), subject='[dev] You are for sure a loaner borrower'), mock.call(html=self.default_kwargs['html'], body=self.default_kwargs['body'], to=self.default_kwargs['to'], sender='noreply@{}'.format(loanertest.USER_DOMAIN), subject='[local] You are for sure a loaner borrower'), mock.call(html=self.default_kwargs['html'], body=self.default_kwargs['body'], to=self.default_kwargs['to'], sender='noreply@{}'.format(loanertest.USER_DOMAIN), subject='[qa] You are for sure a loaner borrower') ] mock_gae_sendmail.assert_has_calls(expected_calls)
def test_send_email_error(self, mock_logerror, mock_gae_sendmail): send_email.constants.ON_PROD = True send_email._send_email(**self.default_kwargs) assert mock_logerror.called