class_docstr: Test class for CarbonBlackOutput
docstr: CarbonBlackOutput - Invalid Action
docstr_tok: ["CarbonBlackOutput","-","Invalid","Action"]
code: def test_dispatch_invalid_action(self, mock_cb, mock_logger):
      """CarbonBlackOutput - Invalid Action"""
      alert_context = {
          "carbonblack": {
              "action": "rickroll",
          }
      }
      assert_false(
          self._dispatcher.dispatch(
              get_alert(context=alert_context), self.OUTPUT
          )
      )
  
      mock_logger.assert_has_calls(
          [
              call(
                  "[%s] Action not supported: %s",
                  "carbonblack",
                  "rickroll",
              ),
              call(
                  "Failed to send alert to %s:%s",
                  "carbonblack",
                  "unit_test_carbonblack",
              ),
          ]
      )
  
file_path: streamalert/tests/unit/streamalert/alert_processor/outputs/test_carbonblack.py
imports: from collections import OrderedDict
  from mock import call, patch, Mock, MagicMock
  from nose.tools import assert_false, assert_is_instance, assert_true
  from streamalert.alert_processor.outputs import carbonblack
  from streamalert.alert_processor.outputs.carbonblack import CarbonBlackOutput
  from tests.unit.streamalert.alert_processor import CONFIG
  from tests.unit.helpers.mocks import MockCBAPI
  from tests.unit.streamalert.alert_processor.helpers import get_alert
label_desc: Use image node_id 7 for calling the TestCarbonBlackOutput obj's underlying member method code with example usage: obj.test_dispatch_invalid_action(mock_cb, mock_logger) without return types