code: def test_log_input_artifact(run_obj):
      run_obj._artifact_uploader.upload_artifact.return_value = (
          "s3uri_value",
          "etag_value",
      )
      with run_obj:
          run_obj.log_file(
              "foo.txt", "name", "whizz/bang", is_output=False
          )
          run_obj._artifact_uploader.upload_artifact.assert_called_with(
              "foo.txt", extra_args=None
          )
          assert (
              "whizz/bang"
              == run_obj._trial_component.input_artifacts[
                  "name"
              ].media_type
          )
  
          run_obj.log_file("foo.txt", is_output=False)
          run_obj._artifact_uploader.upload_artifact.assert_called_with(
              "foo.txt", extra_args=None
          )
          assert "foo.txt" in run_obj._trial_component.input_artifacts
          assert (
              "text/plain"
              == run_obj._trial_component.input_artifacts[
                  "foo.txt"
              ].media_type
          )
  
imports: from __future__ import absolute_import
  import datetime
  import unittest
  import cloudpickle
  from math import inf, nan
  from unittest.mock import patch, Mock, MagicMock
  import dateutil
  import pytest
  from sagemaker.experiments import _environment, SortOrderType
  from sagemaker.experiments._api_types import TrialComponentArtifact, TrialComponentSummary, TrialComponentStatus, _TrialComponentStatusType, TrialComponentSearchResult
  from sagemaker.experiments.experiment import Experiment
  from sagemaker.experiments.run import TRIAL_NAME_TEMPLATE, MAX_RUN_TC_ARTIFACTS_LEN, MAX_NAME_LEN_IN_BACKEND, EXPERIMENT_NAME, RUN_NAME, TRIAL_NAME, DELIMITER, RUN_TC_TAG, SortByType
  from sagemaker.experiments import Run, load_run, list_runs
  from sagemaker.experiments.trial import _Trial
  from sagemaker.experiments.trial_component import _TrialComponent
  from sagemaker.experiments._helper import _DEFAULT_ARTIFACT_PREFIX
  from tests.unit.sagemaker.experiments.helpers import mock_trial_load_or_create_func, mock_tc_load_or_create_func, TEST_EXP_NAME, TEST_EXP_NAME_MIXED_CASE, TEST_RUN_NAME, TEST_EXP_DISPLAY_NAME, TEST_RUN_DISPLAY_NAME, TEST_ARTIFACT_BUCKET, TEST_ARTIFACT_PREFIX, TEST_TAGS
label_desc: Use image node_id 29 for calling a global function with example usage: test_log_input_artifact(run_obj) without return types