def test_send_slack_msg_not_ok_response(self, mock_post): mock_post.return_value.status_code = 200 mock_post.return_value.json.return_value = {'ok': False, 'error': "failed"} slack = SlackDelivery(self.config, self.logger, self.email_delivery) result = slack.get_to_addrs_slack_messages_map(self.message) slack.send_slack_msg(self.target_channel, result[self.target_channel]) self.logger.info.assert_called_with('Error in sending Slack message. Status:%s, ' 'response:%s', 200, 'failed')
def test_send_slack_msg_not_200_response(self, mock_post): mock_post.return_value.status_code = 404 mock_post.return_value.text = "channel_not_found" slack = SlackDelivery(self.config, self.logger, self.email_delivery) result = slack.get_to_addrs_slack_messages_map(self.message) slack.send_slack_msg(self.target_channel, result[self.target_channel]) self.logger.info.assert_called_with('Error in sending Slack message status:%s response: %s', 404, 'channel_not_found')
def test_send_slack_msg_retry_after(self, mock_post): retry_after_delay = 1 mock_post.return_value.status_code = 429 mock_post.return_value.headers = {'Retry-After': retry_after_delay} slack = SlackDelivery(self.config, self.logger, self.email_delivery) result = slack.get_to_addrs_slack_messages_map(self.message) slack.send_slack_msg(self.target_channel, result[self.target_channel]) args, kwargs = mock_post.call_args self.logger.info.assert_called_with("Slack API rate limiting. Waiting %d seconds", retry_after_delay)
def test_send_slack_msg(self, mock_post): mock_post.return_value.status_code = 200 mock_post.return_value.json.return_value = {'ok': True} slack = SlackDelivery(self.config, self.logger, self.email_delivery) result = slack.get_to_addrs_slack_messages_map(self.message) slack.send_slack_msg(self.target_channel, result[self.target_channel]) args, kwargs = mock_post.call_args assert self.target_channel == json.loads(kwargs['data'])['channel'] assert SLACK_POST_MESSAGE_API == kwargs['url'] assert kwargs['data'] == result[self.target_channel]
def test_send_slack_msg_webhook(self, mock_post): mock_post.return_value.status_code = 200 mock_post.return_value.json.return_value = {'ok': True} webhook = "https://hooks.slack.com/this-is-a-webhook" message_destination = [webhook] self.message['action']['to'] = message_destination self.message['policy']['actions'][1]['to'] = message_destination slack = SlackDelivery(self.config, self.logger, self.email_delivery) result = slack.get_to_addrs_slack_messages_map(self.message) slack.send_slack_msg(webhook, result[webhook]) args, kwargs = mock_post.call_args assert webhook == kwargs['url'] assert kwargs['data'] == result[webhook]