class_docstr: Test class for the GSuiteReportsApp
docstr: GSuiteReportsApp - Gather Logs, Remove duplicate events
code: def test_gather_logs_remove_duplicate_events(self):
      """GSuiteReportsApp - Gather Logs, Remove duplicate events"""
      with patch.object(
          self._app, "_activities_service"
      ) as service_mock:
          payload = {
              "kind": "reports#auditActivities",
              "nextPageToken": None,
              "items": self._get_sample_logs(10),
          }
          service_mock.list.return_value.execute.return_value = payload
          self._app._context["last_event_ids"] = [
              -12345678901234567890 + 9,
              -12345678901234567890 + 8,
          ]
  
          assert_equal(len(self._app._gather_logs()), 8)
          assert_equal(
              self._app._last_timestamp, "2011-06-17T15:39:18.460000Z"
          )
          assert_equal(self._app._more_to_poll, False)
          assert_equal(
              self._app._context["last_event_ids"],
              [-12345678901234567890],
          )
  
imports: import json
  import os
  import socket
  import ssl
  from datetime import datetime, timedelta
  import googleapiclient
  from google.auth import exceptions
  from mock import Mock, mock_open, patch
  from moto import mock_ssm
  from nose.tools import assert_equal, assert_false, assert_count_equal, assert_true, raises
  from streamalert.apps._apps.gsuite import GSuiteReportsApp
  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 23 for calling the TestGSuiteReportsApp obj's underlying member method code with example usage: obj.test_gather_logs_remove_duplicate_events() without return types