code: def test_pull(self, mock_service):
      pull_method = mock_service.pull
      pulled_messages = []
      for i, msg in enumerate(TEST_MESSAGES):
          pulled_messages.append({"ackId": i, "message": msg})
      pull_method.return_value.received_messages = pulled_messages
  
      response = self.pubsub_hook.pull(
          project_id=TEST_PROJECT,
          subscription=TEST_SUBSCRIPTION,
          max_messages=10,
      )
      pull_method.assert_called_once_with(
          request=dict(
              subscription=EXPANDED_SUBSCRIPTION,
              max_messages=10,
              return_immediately=False,
          ),
          retry=DEFAULT,
          timeout=None,
          metadata=(),
      )
      assert pulled_messages == response
  
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 25 for calling the TestPubSubHook obj's underlying member method code with example usage: obj.test_pull(mock_service) without return types