code: def test_predict_throws_when_no_model_is_specified():
      recipe_config = {
          "steps": {
              "predict": {
                  "output": {
                      "using": "parquet",
                      "location": "random/path",
                  }
              }
          }
      }
      predict_step = PredictStep.from_recipe_config(
          recipe_config=recipe_config,
          recipe_root=os.getcwd(),
      )
      with pytest.raises(
          MlflowException, match="No model specified for batch scoring"
      ):
          predict_step._validate_and_apply_step_config()
  
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 12 for calling a global function with example usage: test_predict_throws_when_no_model_is_specified() without return types