class_docstr: Test class for the AppIntegration
class_docstr_tok: ["Test","class","for","the","AppIntegration"]
docstr: App Integration - Report Time
code: def test_report_time(self, time_mock, log_mock):
      """App Integration - Report Time"""
      # pylint: disable=no-self-use
      time_mock.time.side_effect = [100.0, 300.0]
  
      @_report_time
      def _test():
          pass
  
      assert_equal(_test(), 200.0)
      log_mock.assert_called_with(
          "[%s] Function executed in %.4f seconds.", "_test", 200.0
      )
  
imports: import os
  from botocore.exceptions import ClientError
  from mock import call, Mock, patch
  from moto import mock_ssm
  from nose.tools import assert_equal, assert_false, assert_is_instance, assert_is_none, assert_true, raises
  import requests
  from requests.exceptions import ConnectTimeout
  from streamalert.apps import StreamAlertApp
  from streamalert.apps.app_base import AppIntegration, safe_timeout, _report_time
  from streamalert.apps._apps.duo import DuoAuthApp
  from streamalert.apps.exceptions import AppException
  from tests.unit.streamalert.apps.test_helpers import get_event, put_mock_params
  from tests.unit.streamalert.shared.test_config import get_mock_lambda_context
label_desc: Use image node_id 5 for calling the TestAppIntegration obj's underlying member method code with example usage: obj.test_report_time(time_mock, log_mock) without return types