class_docstr: Test class for SlackOutput
class_docstr_tok: ["Test","class","for","SlackOutput"]
docstr: SlackOutput - Dispatch Failure, Bad Request
docstr_tok: ["SlackOutput","-","Dispatch","Failure",",","Bad","Request"]
code: def test_dispatch_failure(self, url_mock, log_mock):
      """SlackOutput - Dispatch Failure, Bad Request"""
      json_error = {"message": "error message", "errors": ["error1"]}
      url_mock.return_value.json.return_value = json_error
      url_mock.return_value.status_code = 400
  
      assert_false(self._dispatcher.dispatch(get_alert(), self.OUTPUT))
  
      log_mock.assert_called_with(
          "Failed to send alert to %s:%s", self.SERVICE, self.DESCRIPTOR
      )
  
imports: from collections import Counter, OrderedDict
  from mock import patch, Mock, MagicMock
  from nose.tools import assert_equal, assert_false, assert_true, assert_set_equal
  from streamalert.alert_processor.helpers import compose_alert
  from streamalert.alert_processor.outputs.slack import SlackOutput
  from tests.unit.streamalert.alert_processor.helpers import get_random_alert, get_alert
label_desc: Use image node_id 22 for calling the TestSlackOutput obj's underlying member method code with example usage: obj.test_dispatch_failure(url_mock, log_mock) without return types