### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
self.sensor.soft_fail = soft_fail
        self.sensor.is_bucket_updated({"a", "b"})
        with pytest.raises(expected_exception):
            self.sensor.is_bucket_updated({"a"})
    @mock.patch("airflow.providers.google.cloud.sensors.gcs.get_time", mock_time)
    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"})
    @mock.patch("airflow.providers.google.cloud.sensors.gcs.get_time", mock_time)
    def test_incoming_data(self):