class_docstr: Test the TestEventFile class
class_docstr_tok: ["Test","the","TestEventFile","class"]
docstr: StreamAlert CLI - TestRunner Process Test File, Misconfigured Source
docstr_tok: ["StreamAlert","CLI","-","TestRunner","Process","Test","File",",","Misconfigured","Source"]
code: def test_process_test_file_bad_source(self, log_mock):
      """StreamAlert CLI - TestRunner Process Test File, Misconfigured Source"""
      self.fs.create_file(
          self._DEFAULT_EVENT_PATH,
          contents=basic_test_file_json(
              log="unit_test_simple_log",
              source="nonexistent_source",  # invalid source here
              service="kinesis",
          ),
      )
  
      assert_raises(
          ConfigError,
          self.runner._process_test_file,
          self._DEFAULT_EVENT_PATH,
      )
      log_mock.assert_has_calls(
          [
              mock.call(
                  'Cluster "%s" does not have service "%s" configured as a data source',
                  "advanced",
                  "kinesis",
              ),
              mock.call(
                  'Cluster "%s" does not have service "%s" configured as a data source',
                  "trusted",
                  "kinesis",
              ),
              mock.call(
                  'Cluster "%s" does not have the source "%s" configured as a data source '
                  'for service "%s"',
                  "test",
                  "nonexistent_source",
                  "kinesis",
              ),
          ],
          any_order=True,
      )
  
file_path: streamalert/tests/unit/streamalert_cli/test/test_handler.py
imports: from io import StringIO
  import os
  import mock
  from mock import patch, MagicMock, Mock
  from nose.tools import assert_equal, assert_raises, nottest
  from pyfakefs import fake_filesystem_unittest
  from streamalert.shared.config import load_config
  from streamalert.shared.exceptions import ConfigError
  from streamalert_cli.config import CLIConfig
  from streamalert_cli.test.handler import TestRunner
  from tests.unit.streamalert_cli.test.helpers import basic_test_file_json
label_desc: Use image node_id 3 for calling the TestTestRunner obj's underlying member method code with example usage: obj.test_process_test_file_bad_source(log_mock) without return types