code: def test_save_pipeline_step_function(
      mock_job_settings, upload_payload
  ):
      session = Mock()
      s3_base_uri = random_s3_uri()
      mock_job_settings.s3_root_uri = s3_base_uri
  
      stored_function = StoredFunction(
          sagemaker_session=session,
          s3_base_uri=s3_base_uri,
          s3_kms_key=KMS_KEY,
          hmac_key=HMAC_KEY,
          context=Context(
              step_name="step_name",
              execution_id="execution_id",
          ),
      )
  
      func_args, func_kwargs = convert_pipeline_variables_to_pickleable(
          func_args=(1,),
          func_kwargs={
              "a": 2,
              "b": 3,
          },
      )
  
      test_serialized_data = _SerializedData(
          func=CloudpickleSerializer.serialize(quadratic),
          args=CloudpickleSerializer.serialize(
              (func_args, func_kwargs)
          ),
      )
      stored_function.save_pipeline_step_function(test_serialized_data)
  
      assert upload_payload.call_count == 2
  
imports: from __future__ import absolute_import
  import pytest
  import random
  import string
  from mock import MagicMock, Mock, patch
  from sagemaker.experiments.experiment import Experiment
  from sagemaker.experiments.run import Run
  from sagemaker.experiments.trial import _Trial
  from sagemaker.experiments.trial_component import _TrialComponent
  from sagemaker.remote_function.core.stored_function import StoredFunction, JSON_SERIALIZED_RESULT_KEY, _SerializedData
  from sagemaker.remote_function.core.serialization import deserialize_obj_from_s3, serialize_obj_to_s3, CloudpickleSerializer
  from sagemaker.remote_function.core.pipeline_variables import Context, convert_pipeline_variables_to_pickleable
  from sagemaker.remote_function.errors import SerializationError
  from sagemaker.workflow.function_step import _FunctionStep, DelayedReturn
  from sagemaker.workflow.parameters import ParameterFloat
  from sagemaker.utils import sagemaker_timestamp
  from tests.unit.sagemaker.experiments.helpers import TEST_EXP_DISPLAY_NAME, TEST_EXP_NAME, TEST_RUN_DISPLAY_NAME, TEST_RUN_NAME, mock_tc_load_or_create_func, mock_trial_load_or_create_func
label_desc: Use image node_id 12 for calling a global function with example usage: test_save_pipeline_step_function(mock_job_settings, upload_payload) without return types