code: def test_files_deleted_between_pokes_allow_delete(self):
      self.sensor = GCSUploadSessionCompleteSensor(
          task_id="sensor_2",
          bucket="test-bucket",
          prefix="test-prefix/path",
          inactivity_period=12,
          poke_interval=10,
          min_objects=1,
          allow_delete=True,
          dag=self.dag,
      )
      self.sensor.is_bucket_updated({"a", "b"})
      assert self.sensor.inactivity_seconds == 0
      self.sensor.is_bucket_updated({"a"})
      assert len(self.sensor.previous_objects) == 1
      assert self.sensor.inactivity_seconds == 0
      self.sensor.is_bucket_updated({"a", "c"})
      assert self.sensor.inactivity_seconds == 0
      self.sensor.is_bucket_updated({"a", "d"})
      assert self.sensor.inactivity_seconds == 0
      self.sensor.is_bucket_updated({"a", "d"})
      assert self.sensor.inactivity_seconds == 10
      assert self.sensor.is_bucket_updated({"a", "d"})
  
imports: from __future__ import annotations
  from datetime import datetime, timedelta, timezone
  from unittest import mock
  import pendulum
  import pytest
  from google.cloud.storage.retry import DEFAULT_RETRY
  from airflow.exceptions import AirflowProviderDeprecationWarning, AirflowSensorTimeout, AirflowSkipException, TaskDeferred
  from airflow.models.dag import DAG, AirflowException
  from airflow.providers.google.cloud.sensors.gcs import GCSObjectExistenceAsyncSensor, GCSObjectExistenceSensor, GCSObjectsWithPrefixExistenceSensor, GCSObjectUpdateSensor, GCSUploadSessionCompleteSensor, ts_function
  from airflow.providers.google.cloud.triggers.gcs import GCSBlobTrigger, GCSCheckBlobUpdateTimeTrigger, GCSPrefixBlobTrigger, GCSUploadSessionTrigger
label_desc: Use image node_id 4 for calling the TestGCSUploadSessionCompleteSensor obj's underlying member method code with example usage: obj.test_files_deleted_between_pokes_allow_delete() without return types