class_docstr: Test class for the AppIntegration
class_docstr_tok: ["Test","class","for","the","AppIntegration"]
docstr: App Integration - Gather, No Logs
code: def test_gather_no_logs(self, log_mock):
      """App Integration - Gather, No Logs"""
      with patch.object(
          AppIntegration, "_gather_logs"
      ) as subclass_gather_mock:
          subclass_gather_mock.return_value = []
          result = self._app._gather()
          assert_is_instance(result, float)
          log_mock.assert_called_with(
              "[%s] Gather process was not able to poll any logs on poll #%d",
              self._app,
              1,
          )
  
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 21 for calling the TestAppIntegration obj's underlying member method code with example usage: obj.test_gather_no_logs(log_mock) without return types