code: def test_delete_model_version_tag(store):
      name1 = "DeleteModelVersionTag_TestMod"
      name2 = "DeleteModelVersionTag_TestMod 2"
      initial_tags = [
          ModelVersionTag("key", "value"),
          ModelVersionTag("anotherKey", "some other value"),
      ]
      store.create_registered_model(name1)
      store.create_registered_model(name2)
      run_id_1 = uuid.uuid4().hex
      run_id_2 = uuid.uuid4().hex
      run_id_3 = uuid.uuid4().hex
      store.create_model_version(name1, "A/B", run_id_1, initial_tags)
      store.create_model_version(name1, "A/C", run_id_2, initial_tags)
      store.create_model_version(name2, "A/D", run_id_3, initial_tags)
      new_tag = ModelVersionTag("randomTag", "not a random value")
      store.set_model_version_tag(name1, 1, new_tag)
      store.delete_model_version_tag(name1, 1, "randomTag")
      rm1mv1 = store.get_model_version(name1, 1)
      assert rm1mv1.tags == {tag.key: tag.value for tag in initial_tags}
  
      # testing deleting a key does not affect other model versions with the same key
      store.delete_model_version_tag(name1, 1, "key")
      rm1mv1 = store.get_model_version(name1, 1)
      rm1mv2 = store.get_model_version(name1, 2)
      rm2mv1 = store.get_model_version(name2, 1)
      assert rm1mv1.tags == {"anotherKey": "some other value"}
      assert rm1mv2.tags == {tag.key: tag.value for tag in initial_tags}
      assert rm2mv1.tags == {tag.key: tag.value for tag in initial_tags}
  
      # delete tag that is already deleted does nothing
      store.delete_model_version_tag(name1, 1, "key")
      rm1mv1 = store.get_model_version(name1, 1)
      assert rm1mv1.tags == {"anotherKey": "some other value"}
  
      # can not delete tag on deleted (non-existed) model version
      store.delete_model_version(name2, 1)
      with pytest.raises(
          MlflowException,
          match=rf"Model Version \(name={name2}, version=1\) not found",
      ) as exception_context:
          store.delete_model_version_tag(name2, 1, "key")
      assert exception_context.value.error_code == ErrorCode.Name(
          RESOURCE_DOES_NOT_EXIST
      )
      # can not delete tag with invalid key
      with pytest.raises(
          MlflowException, match=r"Tag name cannot be None"
      ) as exception_context:
          store.delete_model_version_tag(name1, 2, None)
      assert exception_context.value.error_code == ErrorCode.Name(
          INVALID_PARAMETER_VALUE
      )
      # can not use invalid model name or version
      with pytest.raises(
          MlflowException,
          match=r"Registered model name cannot be empty",
      ) as exception_context:
          store.delete_model_version_tag(None, 2, "key")
      assert exception_context.value.error_code == ErrorCode.Name(
          INVALID_PARAMETER_VALUE
      )
      with pytest.raises(
          MlflowException, match=r"Model version must be an integer"
      ) as exception_context:
          store.delete_model_version_tag(
              name1, "I am not a version", "key"
          )
      assert exception_context.value.error_code == ErrorCode.Name(
          INVALID_PARAMETER_VALUE
      )
  
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 38 for calling a global function with example usage: test_delete_model_version_tag(store) without return types