code: def test_delete_productset(self, get_conn):
      # Given
      delete_product_set_method = (
          get_conn.return_value.delete_product_set
      )
      delete_product_set_method.return_value = None
      name = ProductSearchClient.product_set_path(
          PROJECT_ID_TEST, LOC_ID_TEST, PRODUCTSET_ID_TEST
      )
      # When
      response = self.hook.delete_product_set(
          location=LOC_ID_TEST,
          product_set_id=PRODUCTSET_ID_TEST,
          project_id=PROJECT_ID_TEST,
      )
      # Then
      assert response is None
      delete_product_set_method.assert_called_once_with(
          name=name, retry=DEFAULT, timeout=None, metadata=()
      )
  
imports: from __future__ import annotations
  from unittest import mock
  import pytest
  from google.api_core.gapic_v1.method import DEFAULT
  from google.cloud.vision_v1 import AnnotateImageRequest, AnnotateImageResponse, EntityAnnotation, Feature, Product, ProductSearchClient, ProductSet, ReferenceImage, SafeSearchAnnotation
  from google.protobuf.json_format import MessageToDict
  from airflow.exceptions import AirflowException
  from airflow.providers.google.cloud.hooks.vision import ERR_DIFF_NAMES, ERR_UNABLE_TO_CREATE, CloudVisionHook
  from airflow.providers.google.common.consts import CLIENT_INFO
  from tests.providers.google.cloud.utils.base_gcp_mock import mock_base_gcp_hook_default_project_id
label_desc: Use image node_id 12 for calling the TestGcpVisionHook obj's underlying member method code with example usage: obj.test_delete_productset(get_conn) without return types