### 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.
"""
        Asserts that a task is deferred and a GCSUploadSessionTrigger will be fired
        when the GCSUploadSessionCompleteAsyncSensor is executed.
        """
        mock_hook.return_value.is_bucket_updated.return_value = False
        with pytest.raises(TaskDeferred) as exc:
            self.OPERATOR.execute(mock.MagicMock())
        assert isinstance(
            exc.value.trigger, GCSUploadSessionTrigger
        ), "Trigger is not a GCSUploadSessionTrigger"
    @pytest.mark.parametrize(
        "soft_fail, expected_exception", ((False, AirflowException), (True, AirflowSkipException))
    )
    def test_gcs_upload_session_complete_sensor_execute_failure(self, context, soft_fail, expected_exception):
        """Tests that an AirflowException is raised in case of error event"""
        self.OPERATOR.soft_fail = soft_fail
        with pytest.raises(expected_exception):
            self.OPERATOR.execute_complete(
                context=context, event={"status": "error", "message": "test failure message"}
            )
    def test_gcs_upload_session_complete_async_sensor_execute_complete(self, context):
        """Asserts that execute complete is completed as expected"""
        assert self.OPERATOR.execute_complete(
            context=context, event={"status": "success", "message": "success"}
        )