code: def testMlFlowSetupExplicit(self):
      clear_env_vars()
      trial_config = {"par1": 4, "par2": 9.0}
  
      # No MLflow config passed in.
      with self.assertRaises(ValueError):
          setup_mlflow(trial_config)
  
      # Invalid experiment-id
      with self.assertRaises(ValueError):
          setup_mlflow(trial_config, experiment_id="500")
  
      # Set to experiment that does not already exist.
      with self.assertRaises(ValueError):
          setup_mlflow(
              trial_config,
              experiment_id="500",
              experiment_name="new_experiment",
              tracking_uri=self.tracking_uri,
          )
  
      mlflow = setup_mlflow(
          trial_config,
          experiment_id="500",
          experiment_name="existing_experiment",
          tracking_uri=self.tracking_uri,
      )
      mlflow.end_run()
  
imports: import os
  import shutil
  import tempfile
  import unittest
  from collections import namedtuple
  from unittest.mock import patch
  from mlflow.tracking import MlflowClient
  from ray._private.dict import flatten_dict
  from ray.train._internal.session import init_session, shutdown_session
  from ray.train._internal.storage import StorageContext
  from ray.air.integrations.mlflow import MLflowLoggerCallback, setup_mlflow, _NoopModule
  from ray.air._internal.mlflow import _MLflowLoggerUtil
label_desc: Use image node_id 5 for calling the MLflowTest obj's underlying member method code with example usage: obj.testMlFlowSetupExplicit() without return types