code: def test_validate_after_replacing_something_in_schema(
      get_validation_method: Callable[..., ValidationMethodType],
      nlu: bool,
      core: bool,
      what: Text,
  ):
      # training
      schema1 = _get_example_schema()
      validate = get_validation_method(
          finetuning=False,
          load=False,
          nlu=nlu,
          core=core,
          graph_schema=schema1,
      )
      validate(importer=EmptyDataImporter())
  
      # change schema
      schema2 = copy.deepcopy(schema1)
      schema_node = schema2.nodes["node-0"]
      if what == "uses":
          schema_node.uses = WhitespaceTokenizer
      elif what == "fn":
          schema_node.fn = "a-new-function"
      elif what == "needs":
          schema_node.needs = {"something-new": "node-1"}
      elif what == "config":
          schema_node.config["other-parameter"] = "some-new-value"
      else:
          assert False, "Please fix this test."
  
      # finetuning raises -  doesn't matter if it's nlu/core/both
      loaded_validate = get_validation_method(
          finetuning=True,
          load=True,
          nlu=nlu,
          core=core,
          graph_schema=schema2,
      )
      with pytest.raises(InvalidConfigException):
          loaded_validate(importer=EmptyDataImporter())
  
imports: import os
  from pathlib import Path
  import copy
  from typing import Callable, List, Optional, Text, Dict, Any
  from _pytest.monkeypatch import MonkeyPatch
  import pytest
  from rasa.engine.graph import ExecutionContext, GraphComponent, GraphSchema, SchemaNode
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.graph_components.validators.finetuning_validator import FinetuningValidator
  from rasa.nlu.tokenizers.whitespace_tokenizer import WhitespaceTokenizer
  from rasa.core.policies.rule_policy import RulePolicy
  from rasa.shared.constants import DEFAULT_CONFIG_PATH, DEFAULT_DATA_PATH, DEFAULT_DOMAIN_PATH
  from rasa.shared.core.domain import KEY_RESPONSES, Domain
  from rasa.shared.importers.rasa import RasaFileImporter
  from rasa.shared.importers.importer import NluDataImporter, TrainingDataImporter
  import rasa.shared.utils.io
  from rasa.shared.exceptions import InvalidConfigException
  from rasa.shared.nlu.constants import ACTION_NAME, INTENT, TEXT
  from rasa.shared.nlu.training_data.message import Message
  from rasa.shared.nlu.training_data.training_data import TrainingData
label_desc: Use image node_id 12 for calling a global function with example usage: test_validate_after_replacing_something_in_schema(get_validation_method, nlu, core, what) without return types