code: def test_copy_model_version(store, copy_to_same_model):
      name1 = "test_for_copy_MV1"
      store.create_registered_model(name1)
      src_tags = [
          ModelVersionTag("key", "value"),
          ModelVersionTag("anotherKey", "some other value"),
      ]
      src_mv = _create_model_version(
          store,
          name1,
          tags=src_tags,
          run_link="dummylink",
          description="test description",
      )
  
      # Make some changes to the src MV that won't be copied over
      store.transition_model_version_stage(
          name1,
          src_mv.version,
          "Production",
          archive_existing_versions=False,
      )
  
      copy_rm_name = (
          name1 if copy_to_same_model else "test_for_copy_MV2"
      )
      copy_mv_version = 2 if copy_to_same_model else 1
      timestamp = time.time()
      dst_mv = store.copy_model_version(src_mv, copy_rm_name)
      assert dst_mv.name == copy_rm_name
      assert dst_mv.version == copy_mv_version
  
      copied_mv = store.get_model_version(dst_mv.name, dst_mv.version)
      assert copied_mv.name == copy_rm_name
      assert copied_mv.version == copy_mv_version
      assert copied_mv.current_stage == "None"
      assert copied_mv.creation_timestamp >= timestamp
      assert copied_mv.last_updated_timestamp >= timestamp
      assert copied_mv.description == "test description"
      assert (
          copied_mv.source == f"models:/{src_mv.name}/{src_mv.version}"
      )
      assert (
          store.get_model_version_download_uri(
              dst_mv.name, dst_mv.version
          )
          == src_mv.source
      )
      assert copied_mv.run_link == "dummylink"
      assert copied_mv.run_id == src_mv.run_id
      assert copied_mv.status == "READY"
      assert copied_mv.status_message is None
      assert copied_mv.tags == {
          "key": "value",
          "anotherKey": "some other value",
      }
  
      # Copy a model version copy
      double_copy_mv = store.copy_model_version(
          copied_mv, "test_for_copy_MV3"
      )
      assert (
          double_copy_mv.source
          == f"models:/{copied_mv.name}/{copied_mv.version}"
      )
      assert (
          store.get_model_version_download_uri(
              dst_mv.name, dst_mv.version
          )
          == src_mv.source
      )
  
imports: import time
  import uuid
  from typing import List, NamedTuple
  from unittest import mock
  import pytest
  from mlflow.entities.model_registry import ModelVersion, ModelVersionTag, RegisteredModelTag
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE, RESOURCE_DOES_NOT_EXIST, ErrorCode
  from mlflow.store.model_registry.file_store import FileStore
  from mlflow.utils.file_utils import path_to_local_file_uri, write_yaml
  from mlflow.utils.time import get_current_time_millis
  from tests.helper_functions import random_int, random_str
label_desc: Use image node_id 46 for calling a global function with example usage: test_copy_model_version(store, copy_to_same_model) without return types