code: def test_load(sagemaker_session):
      now = datetime.datetime.now(datetime.timezone.utc)
  
      sagemaker_session.sagemaker_client.describe_action.return_value = {
          "ActionName": "A",
          "Source": {
              "SourceUri": "B",
              "SourceTypes": ["C1", "C2", "C3"],
          },
          "ActionArn": "D",
          "ActionType": "E",
          "Properties": {"F": "FValue", "G": "GValue"},
          "CreationTime": now,
          "CreatedBy": {},
          "LastModifiedTime": now,
          "LastModifiedBy": {},
      }
      obj = action.Action.load(
          action_name="A", sagemaker_session=sagemaker_session
      )
      sagemaker_session.sagemaker_client.describe_action.assert_called_with(
          ActionName="A"
      )
      assert "A" == obj.action_name
      assert "B" == obj.source.source_uri
      assert "C1" == obj.source.source_types[0]
      assert "C2" == obj.source.source_types[1]
      assert "C3" == obj.source.source_types[2]
      assert "D" == obj.action_arn
      assert "E" == obj.action_type
      assert {"F": "FValue", "G": "GValue"} == obj.properties
  
file_path: sagemaker-python-sdk/tests/unit/sagemaker/lineage/test_action.py
imports: from __future__ import absolute_import
  import datetime
  import unittest.mock
  from sagemaker.lineage import action, _api_types
  from sagemaker.lineage._api_types import ActionSource
label_desc: Use image node_id 5 for calling a global function with example usage: test_load(sagemaker_session) without return types