code: def test_acknowledge_fails_on_exception(
      self, mock_service, exception
  ):
      ack_method = mock_service.acknowledge
      ack_method.side_effect = exception
  
      with pytest.raises(PubSubException):
          self.pubsub_hook.acknowledge(
              project_id=TEST_PROJECT,
              subscription=TEST_SUBSCRIPTION,
              ack_ids=["1", "2", "3"],
          )
          ack_method.assert_called_once_with(
              request=dict(
                  subscription=EXPANDED_SUBSCRIPTION,
                  ack_ids=["1", "2", "3"],
              ),
              retry=DEFAULT,
              timeout=None,
              metadata=(),
          )
  
imports: from __future__ import annotations
  from unittest import mock
  from uuid import UUID
  import httplib2
  import pytest
  from google.api_core.exceptions import AlreadyExists, GoogleAPICallError
  from google.api_core.gapic_v1.method import DEFAULT
  from google.cloud.exceptions import NotFound
  from google.cloud.pubsub_v1.types import ReceivedMessage
  from googleapiclient.errors import HttpError
  from airflow.providers.google.cloud.hooks.pubsub import PubSubAsyncHook, PubSubException, PubSubHook
  from airflow.providers.google.common.consts import CLIENT_INFO
  from airflow.version import version
label_desc: Use image node_id 31 for calling the TestPubSubHook obj's underlying member method code with example usage: obj.test_acknowledge_fails_on_exception(mock_service, exception) without return types