code: def test_test_step_logs_step_cards_as_artifacts():
      recipe = Recipe(profile="local")
      recipe.clean()
      recipe.run()
  
      tracking_uri = recipe._get_step(
          "train"
      ).tracking_config.tracking_uri
      local_run_id_path = get_step_output_path(
          recipe_root_path=recipe._recipe_root_path,
          step_name="train",
          relative_path="run_id",
      )
      run_id = pathlib.Path(local_run_id_path).read_text()
      artifacts = set(list_all_artifacts(tracking_uri, run_id))
      assert artifacts.issuperset(
          {
              "ingest/card.html",
              "split/card.html",
              "transform/card.html",
              "train/card.html",
              "evaluate/card.html",
              "register/card.html",
          }
      )
  
imports: import os
  import pathlib
  import re
  import shutil
  from unittest import mock
  import pandas
  import pytest
  import yaml
  import mlflow
  from mlflow.entities import Run, SourceType
  from mlflow.entities.model_registry import ModelVersion
  from mlflow.exceptions import MlflowException
  from mlflow.recipes.recipe import Recipe
  from mlflow.recipes.step import BaseStep
  from mlflow.recipes.utils.execution import _MAKEFILE_FORMAT_STRING, _get_execution_directory_basename, get_step_output_path
  from mlflow.tracking.client import MlflowClient
  from mlflow.tracking.context.registry import resolve_tags
  from mlflow.utils.file_utils import path_to_local_file_uri
  from mlflow.utils.mlflow_tags import LEGACY_MLFLOW_GIT_REPO_URL, MLFLOW_GIT_COMMIT, MLFLOW_GIT_REPO_URL, MLFLOW_SOURCE_NAME, MLFLOW_SOURCE_TYPE
  from tests.recipes.helper_functions import chdir, list_all_artifacts
label_desc: Use image node_id 9 for calling a global function with example usage: test_test_step_logs_step_cards_as_artifacts() without return types