code: def test_dataset_tracking(self):
      test_bundle_name = "endoscopic_tool_segmentation"
      with tempfile.TemporaryDirectory() as tempdir:
          resource = "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/endoscopic_tool_dataset.zip"
          md5 = "f82da47259c0a617202fb54624798a55"
          compressed_file = os.path.join(
              tempdir, "endoscopic_tool_segmentation.zip"
          )
          data_dir = os.path.join(tempdir, "endoscopic_tool_dataset")
          with skip_if_downloading_fails():
              if not os.path.exists(data_dir):
                  download_and_extract(
                      resource, compressed_file, tempdir, md5
                  )
  
              download(test_bundle_name, bundle_dir=tempdir)
  
              bundle_root = os.path.join(tempdir, test_bundle_name)
              config_file = os.path.join(
                  bundle_root, "configs/inference.json"
              )
              meta_file = os.path.join(
                  bundle_root, "configs/metadata.json"
              )
              logging_file = os.path.join(
                  bundle_root, "configs/logging.conf"
              )
              workflow = ConfigWorkflow(
                  workflow_type="infer",
                  config_file=config_file,
                  meta_file=meta_file,
                  logging_file=logging_file,
                  init_id="initialize",
                  run_id="run",
                  final_id="finalize",
              )
  
              tracking_path = os.path.join(bundle_root, "eval")
              workflow.bundle_root = bundle_root
              workflow.dataset_dir = data_dir
              workflow.initialize()
              infer_dataset = workflow.dataset
              mlflow_handler = MLFlowHandler(
                  iteration_log=False,
                  epoch_log=False,
                  dataset_dict={"test": infer_dataset},
                  tracking_uri=path_to_uri(tracking_path),
              )
              mlflow_handler.attach(workflow.evaluator)
              workflow.run()
              workflow.finalize()
  
              cur_run = mlflow_handler.client.get_run(
                  mlflow_handler.cur_run.info.run_id
              )
              logged_nontrain_set = [
                  x
                  for x in cur_run.inputs.dataset_inputs
                  if x.dataset.name.startswith("test")
              ]
              self.assertEqual(len(logged_nontrain_set), 1)
              mlflow_handler.close()
  
imports: from __future__ import annotations
  import glob
  import os
  import shutil
  import tempfile
  import unittest
  from concurrent.futures import ThreadPoolExecutor
  from unittest.mock import MagicMock
  import numpy
  from ignite.engine import Engine, Events
  from parameterized import parameterized
  from monai.apps import download_and_extract
  from monai.bundle import ConfigWorkflow, download
  from monai.handlers import MLFlowHandler
  from monai.utils import optional_import, path_to_uri
  from tests.utils import skip_if_downloading_fails, skip_if_quick
label_desc: Use image node_id 8 for calling the TestHandlerMLFlow obj's underlying member method code with example usage: obj.test_dataset_tracking() without return types