code: def test_create_new_function_override_project_id(
      self, wait_for_operation_to_complete, get_conn
  ):
      create_method = (
          get_conn.return_value.projects.return_value.locations.return_value.functions.return_value.create
      )
      execute_method = create_method.return_value.execute
      execute_method.return_value = {"name": "operation_id"}
      wait_for_operation_to_complete.return_value = None
      res = self.gcf_function_hook.create_new_function(
          project_id="new-project", location=GCF_LOCATION, body={}
      )
      assert res is None
      create_method.assert_called_once_with(
          body={}, location="projects/new-project/locations/location"
      )
      execute_method.assert_called_once_with(num_retries=5)
      wait_for_operation_to_complete.assert_called_once_with(
          operation_name="operation_id"
      )
  
imports: from __future__ import annotations
  from unittest import mock
  from unittest.mock import PropertyMock
  import pytest
  from airflow.exceptions import AirflowException
  from airflow.providers.google.cloud.hooks.functions import CloudFunctionsHook
  from tests.providers.google.cloud.utils.base_gcp_mock import GCP_PROJECT_ID_HOOK_UNIT_TEST, get_open_mock, mock_base_gcp_hook_default_project_id, mock_base_gcp_hook_no_default_project_id
label_desc: Use image node_id 4 for calling the TestFunctionHookDefaultProjectId obj's underlying member method code with example usage: obj.test_create_new_function_override_project_id(wait_for_operation_to_complete, get_conn) without return types