class_docstr: Test class for PhantomOutput
class_docstr_tok: ["Test","class","for","PhantomOutput"]
docstr: PhantomOutput - Dispatch Failure, Decode Error w/ Container Check
docstr_tok: ["PhantomOutput","-","Dispatch","Failure",",","Decode","Error","w\/","Container","Check"]
code: def test_dispatch_check_container_error(
      self, post_mock, get_mock, log_mock
  ):
      """PhantomOutput - Dispatch Failure, Decode Error w/ Container Check"""
      # _check_container_exists
      get_mock.return_value.status_code = 200
      get_mock.return_value.text = "{}"
      # _setup_container
      post_mock.return_value.status_code = 400
      json_error = {"message": "error message", "errors": ["error1"]}
      post_mock.return_value.json.return_value = json_error
  
      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
      )
  
file_path: streamalert/tests/unit/streamalert/alert_processor/outputs/test_phantom.py
imports: from mock import call, patch, PropertyMock, Mock, MagicMock
  from nose.tools import assert_false, assert_true
  from streamalert.alert_processor.outputs.phantom import PhantomOutput
  from tests.unit.streamalert.alert_processor.helpers import get_alert
label_desc: Use image node_id 5 for calling the TestPhantomOutput obj's underlying member method code with example usage: obj.test_dispatch_check_container_error(post_mock, get_mock, log_mock) without return types