code: def test_gcp(self, mock_hvac, mock_get_credentials, mock_get_scopes):
      mock_client = mock.MagicMock()
      mock_hvac.Client.return_value = mock_client
      mock_get_scopes.return_value = ["scope1", "scope2"]
      mock_get_credentials.return_value = ("credentials", "project_id")
      vault_client = _VaultClient(
          auth_type="gcp",
          gcp_key_path="path.json",
          gcp_scopes="scope1,scope2",
          url="http://localhost:8180",
          session=None,
      )
      client = vault_client.client
      mock_hvac.Client.assert_called_with(
          url="http://localhost:8180", session=None
      )
      mock_get_scopes.assert_called_with("scope1,scope2")
      mock_get_credentials.assert_called_with(
          key_path="path.json",
          keyfile_dict=None,
          scopes=["scope1", "scope2"],
      )
      mock_hvac.Client.assert_called_with(
          url="http://localhost:8180", session=None
      )
      client.auth.gcp.configure.assert_called_with(
          credentials="credentials",
      )
      client.is_authenticated.assert_called_with()
      assert 2 == vault_client.kv_engine_version
  
imports: from __future__ import annotations
  from unittest import mock
  from unittest.mock import mock_open, patch
  import pytest
  from hvac.exceptions import InvalidPath, VaultError
  from requests import Session
  from requests.adapters import HTTPAdapter
  from urllib3.util import Retry
  from airflow.providers.hashicorp._internal_client.vault_client import _VaultClient
label_desc: Use image node_id 14 for calling the TestVaultClient obj's underlying member method code with example usage: obj.test_gcp(mock_hvac, mock_get_credentials, mock_get_scopes) without return types