Exemplo n.º 1
0
    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')
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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]
Exemplo n.º 5
0
    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]