code: def bq_client_full_mock(monkeypatch):
      client_mock = mock.create_autospec(bigquery.Client)
      client_mock.return_value = client_mock
  
      def bq_get_dataset_mock(dataset_id):
          if dataset_id != _TEST_BQ_DATASET_ID:
              raise exceptions.NotFound(
                  "Dataset {} is not found. Please ensure that it exists.".format(
                      _TEST_BQ_DATASET
                  )
              )
  
      def bq_get_table_mock(table_id):
          if table_id != _TEST_BQ_DATASET:
              raise exceptions.NotFound(
                  "Table {} is not found. Please ensure that it exists.".format(
                      _TEST_BQ_DATASET
                  )
              )
  
      def bq_create_dataset_mock(dataset_id, **kwargs):
          if dataset_id == "existingdataset":
              raise exceptions.Conflict("Dataset already exists")
          return mock.Mock(operation.Operation)
  
      def bq_delete_table_mock(table, **kwargs):
          return None
  
      def bq_query_mock(query):
          fake_job_ref = job._JobReference(
              "fake_job_id", _TEST_GCP_PROJECT_ID, "us-central1"
          )
          fake_query_job = job.QueryJob(fake_job_ref, query, None)
          fake_query_job.configuration.destination = (
              _TEST_BQ_TEMP_DESTINATION
          )
          return fake_query_job
  
      client_mock.get_dataset = bq_get_dataset_mock
      client_mock.get_table = bq_get_table_mock
      client_mock.create_dataset = bq_create_dataset_mock
      client_mock.delete_table = bq_delete_table_mock
      client_mock.query = bq_query_mock
  
      monkeypatch.setattr(bigquery, "Client", client_mock)
      return client_mock
  
imports: from unittest import mock
  import pyarrow
  import pytest
  from google.api_core import exceptions, operation
  from google.cloud import bigquery, bigquery_storage
  from google.cloud.bigquery import job
  from google.cloud.bigquery_storage_v1.types import stream
  import ray
  from ray.data.datasource import BigQueryDatasource, _BigQueryDatasink
  from ray.data.tests.conftest import *
  from ray.data.tests.mock_http_server import *
  from ray.tests.conftest import *
label_desc: Use image node_id 1 for calling a global function with example usage: bq_client_full_mock(monkeypatch) and returns: client_mock, mock, None, fake_query_job