code: def test_predict_model_uri_takes_precendence_over_model_name(
      tmp_recipe_root_path: Path,
      predict_step_output_dir: Path,
      spark_session,
  ):
      # Train a normal model and a dummy model
      register_step_rm_name = "register_step_model"
      train_log_and_register_model(register_step_rm_name)
      model_uri = train_log_and_register_model(
          "predict_step_model", is_dummy=True
      )
  
      # Specify the normal model in the register step `model_name` config key and
      # the dummy model in the predict step `model_uri` config key
      recipe_config = read_yaml(
          tmp_recipe_root_path, _RECIPE_CONFIG_FILE_NAME
      )
      recipe_config.update(
          {
              "model_registry": {"model_name": register_step_rm_name},
              "steps": {
                  "predict": {
                      "output": {
                          "using": "parquet",
                          "location": str(
                              predict_step_output_dir.joinpath(
                                  "output.parquet"
                              )
                          ),
                      },
                      "model_uri": model_uri,
                  },
              },
          }
      )
      predict_step = PredictStep.from_recipe_config(
          recipe_config,
          str(tmp_recipe_root_path),
      )
      predict_step.run(str(predict_step_output_dir))
  
      # These assertions will only pass if the dummy model was used for scoring
      prediction_assertions(
          predict_step_output_dir, "parquet", "output", spark_session
      )
  
imports: import os
  import tempfile
  from pathlib import Path
  from unittest import mock
  import pandas
  import pytest
  from pyspark.sql import SparkSession
  from sklearn.datasets import load_diabetes
  import mlflow
  from mlflow.exceptions import MlflowException
  from mlflow.recipes.artifacts import RegisteredModelVersionInfo
  from mlflow.recipes.steps.predict import _INPUT_FILE_NAME, _SCORED_OUTPUT_FILE_NAME, PredictStep
  from mlflow.recipes.steps.register import _REGISTERED_MV_INFO_FILE
  from mlflow.recipes.utils import _RECIPE_CONFIG_FILE_NAME
  from mlflow.utils.file_utils import read_yaml
  from tests.recipes.helper_functions import get_random_id, train_and_log_model, train_log_and_register_model
label_desc: Use image node_id 8 for calling a global function with example usage: test_predict_model_uri_takes_precendence_over_model_name(tmp_recipe_root_path, predict_step_output_dir, spark_session) without return types