code: def test_properties_tuning_job():
      prop = Properties(
          step_name="MyStep",
          shape_names=[
              "DescribeHyperParameterTuningJobResponse",
              "ListTrainingJobsForHyperParameterTuningJobResponse",
          ],
      )
      some_prop_names = [
          "BestTrainingJob",
          "HyperParameterTuningJobConfig",
          "ObjectiveStatusCounters",
          "TrainingJobSummaries",
      ]
      for name in some_prop_names:
          assert name in prop.__dict__.keys()
  
      assert prop.HyperParameterTuningJobName.expr == {
          "Get": "Steps.MyStep.HyperParameterTuningJobName"
      }
      assert (
          prop.HyperParameterTuningJobConfig.HyperParameterTuningJobObjective.Type.expr
          == {
              "Get": "Steps.MyStep.HyperParameterTuningJobConfig.HyperParameterTuningJobObjective.Type"
          }
      )
      assert prop.ObjectiveStatusCounters.Succeeded.expr == {
          "Get": "Steps.MyStep.ObjectiveStatusCounters.Succeeded"
      }
      assert prop.TrainingJobSummaries[0].TrainingJobName.expr == {
          "Get": "Steps.MyStep.TrainingJobSummaries[0].TrainingJobName"
      }
      assert (
          prop.TrainingJobSummaries[0].TrainingJobName.expr
          == deepcopy(prop.TrainingJobSummaries[0].TrainingJobName).expr
      )
  
file_path: sagemaker-python-sdk/tests/unit/sagemaker/workflow/test_properties.py
imports: from __future__ import absolute_import
  import pytest
  from mock import Mock
  from copy import deepcopy
  from sagemaker.workflow.properties import Properties
  from sagemaker.workflow.step_outputs import get_step
label_desc: Use image node_id 4 for calling a global function with example usage: test_properties_tuning_job() without return types