code: def client(tmp_path):
      # clean up users & permissions created from previous tests
      db_file = os.path.abspath(
          os.path.basename(auth_config.database_uri)
      )
      if os.path.exists(db_file):
          os.remove(db_file)
  
      path = tmp_path.joinpath("sqlalchemy.db").as_uri()
      backend_uri = (
          "sqlite://" if is_windows() else "sqlite:////"
      ) + path[len("file://") :]
  
      with _init_server(
          backend_uri=backend_uri,
          root_artifact_uri=tmp_path.joinpath("artifacts").as_uri(),
          app="mlflow.server.auth:create_app",
      ) as url:
          yield AuthServiceClient(url)
  
imports: import os
  from contextlib import contextmanager
  import pytest
  import mlflow
  from mlflow import MlflowException
  from mlflow.environment_variables import MLFLOW_TRACKING_PASSWORD, MLFLOW_TRACKING_USERNAME
  from mlflow.protos.databricks_pb2 import PERMISSION_DENIED, RESOURCE_DOES_NOT_EXIST, UNAUTHENTICATED, ErrorCode
  from mlflow.server.auth import auth_config
  from mlflow.server.auth.client import AuthServiceClient
  from mlflow.utils.os import is_windows
  from tests.helper_functions import random_str
  from tests.server.auth.auth_test_utils import ADMIN_PASSWORD, ADMIN_USERNAME, NEW_PERMISSION, PERMISSION, User, create_user
  from tests.tracking.integration_test_utils import _init_server
label_desc: Use image node_id 2 for calling a global function with example usage: client(tmp_path) without return types