code: def test_lineage_artifact_tracker(
      lineage_artifact_tracker, sagemaker_session
  ):
      client = sagemaker_session.sagemaker_client
      lineage_artifact_tracker.add_input_artifact(
          "input_name", "input_source_uri", "input_etag", "text/plain"
      )
      lineage_artifact_tracker.add_output_artifact(
          "output_name",
          "output_source_uri",
          "output_etag",
          "text/plain",
      )
      client.create_artifact.side_effect = [
          {"ArtifactArn": "created_arn_1"},
          {"ArtifactArn": "created_arn_2"},
      ]
  
      lineage_artifact_tracker.save()
  
      expected_calls = [
          call(
              ArtifactName="input_name",
              ArtifactType="text/plain",
              Source={
                  "SourceUri": "input_source_uri",
                  "SourceTypes": [
                      {"SourceIdType": "S3ETag", "Value": "input_etag"}
                  ],
              },
          ),
          call(
              ArtifactName="output_name",
              ArtifactType="text/plain",
              Source={
                  "SourceUri": "output_source_uri",
                  "SourceTypes": [
                      {"SourceIdType": "S3ETag", "Value": "output_etag"}
                  ],
              },
          ),
      ]
      assert expected_calls == client.create_artifact.mock_calls
  
      expected_calls = [
          call(
              SourceArn="created_arn_1",
              DestinationArn="test_trial_component_arn",
              AssociationType="ContributedTo",
          ),
          call(
              SourceArn="test_trial_component_arn",
              DestinationArn="created_arn_2",
              AssociationType="Produced",
          ),
      ]
      assert expected_calls == client.add_association.mock_calls
  
imports: from __future__ import absolute_import
  import json
  import os
  import shutil
  import tempfile
  from mock import Mock, PropertyMock, call
  import pytest
  from src.sagemaker.experiments._helper import _LineageArtifactTracker, _ArtifactUploader
  from src.sagemaker.experiments._utils import resolve_artifact_name
  from src.sagemaker.session import Session
  from tests.unit import _test_default_bucket_and_prefix_combinations, DEFAULT_S3_OBJECT_KEY_PREFIX_NAME, DEFAULT_S3_BUCKET_NAME
label_desc: Use image node_id 5 for calling a global function with example usage: test_lineage_artifact_tracker(lineage_artifact_tracker, sagemaker_session) without return types