code: def test_train(
      run_in_simple_project: Callable[..., RunResult],
      tmp_path: Path,
      optional_arguments: List,
  ):
      temp_dir = os.getcwd()
  
      run_in_simple_project(
          "train",
          "-c",
          "config.yml",
          "-d",
          "domain.yml",
          "--data",
          "data",
          "--out",
          "train_models",
          "--fixed-model-name",
          "test-model",
          *optional_arguments,
      )
  
      models_dir = Path(temp_dir, "train_models")
      assert models_dir.is_dir()
  
      models = list(models_dir.glob("*"))
      assert len(models) == 1
  
      model = models[0]
      assert model.name == "test-model.tar.gz"
  
      _, metadata = LocalModelStorage.from_model_archive(
          tmp_path, model
      )
      assert metadata.model_id
      assert (
          metadata.domain.as_dict()
          == Domain.load(Path(temp_dir, "domain.yml")).as_dict()
      )
  
imports: import os
  import sys
  from pathlib import Path
  from _pytest.capture import CaptureFixture
  import pytest
  from typing import Callable, List
  from _pytest.pytester import RunResult
  from _pytest.tmpdir import TempPathFactory
  import rasa.shared.utils.io
  from rasa.constants import NUMBER_OF_TRAINING_STORIES_FILE
  from rasa.core.policies.policy import Policy
  from rasa.engine.storage.local_model_storage import LocalModelStorage
  from rasa.engine.storage.resource import Resource
  from rasa.shared.core.domain import Domain
  from rasa.model_training import CODE_NEEDS_TO_BE_RETRAINED, CODE_FORCED_TRAINING
  from rasa.shared.constants import LATEST_TRAINING_DATA_FORMAT_VERSION
  from rasa.shared.nlu.training_data.training_data import DEFAULT_TRAINING_DATA_OUTPUT_PATH
  import rasa.utils.io
  from tests.cli.conftest import RASA_EXE
label_desc: Use image node_id 1 for calling a global function with example usage: test_train(run_in_simple_project, tmp_path, optional_arguments) without return types