code: def test_update_model_version(store):
      name = "test_for_update_MV"
      store.create_registered_model(name)
      mv1 = _create_model_version(store, name)
      mvd1 = store.get_model_version(name=mv1.name, version=mv1.version)
      assert mvd1.name == name
      assert mvd1.version == 1
      assert mvd1.current_stage == "None"
  
      # update stage
      store.transition_model_version_stage(
          name=mv1.name,
          version=mv1.version,
          stage="Production",
          archive_existing_versions=False,
      )
      mvd2 = store.get_model_version(name=mv1.name, version=mv1.version)
      assert mvd2.name == name
      assert mvd2.version == 1
      assert mvd2.current_stage == "Production"
      assert mvd2.description is None
  
      # update description
      store.update_model_version(
          name=mv1.name,
          version=mv1.version,
          description="test model version",
      )
      mvd3 = store.get_model_version(name=mv1.name, version=mv1.version)
      assert mvd3.name == name
      assert mvd3.version == 1
      assert mvd3.current_stage == "Production"
      assert mvd3.description == "test model version"
  
      # only valid stages can be set
      with pytest.raises(
          MlflowException,
          match=(
              r"Invalid Model Version stage: unknown\. "
              r"Value must be one of None, Staging, Production, Archived\."
          ),
      ) as exception_context:
          store.transition_model_version_stage(
              mv1.name,
              mv1.version,
              stage="unknown",
              archive_existing_versions=False,
          )
      assert exception_context.value.error_code == ErrorCode.Name(
          INVALID_PARAMETER_VALUE
      )
  
      # stages are case-insensitive and auto-corrected to system stage names
      for stage_name in ["STAGING", "staging", "StAgInG"]:
          store.transition_model_version_stage(
              name=mv1.name,
              version=mv1.version,
              stage=stage_name,
              archive_existing_versions=False,
          )
          mvd5 = store.get_model_version(
              name=mv1.name, version=mv1.version
          )
          assert mvd5.current_stage == "Staging"
  
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 21 for calling a global function with example usage: test_update_model_version(store) without return types