code: def test_pipeline_basic(sagemaker_session_mock):
      parameter = ParameterString("MyStr")
      pipeline = Pipeline(
          name="MyPipeline",
          parameters=[parameter],
          steps=[CustomStep(name="MyStep", input_data=parameter)],
          sagemaker_session=sagemaker_session_mock,
      )
  
      assert ordered(json.loads(pipeline.definition())) == ordered(
          {
              "Version": "2020-12-01",
              "Metadata": {},
              "Parameters": [{"Name": "MyStr", "Type": "String"}],
              "PipelineExperimentConfig": {
                  "ExperimentName": {"Get": "Execution.PipelineName"},
                  "TrialName": {"Get": "Execution.PipelineExecutionId"},
              },
              "Steps": [
                  {
                      "Name": "MyStep",
                      "Type": "Training",
                      "Arguments": {
                          "input_data": {"Get": "Parameters.MyStr"}
                      },
                  }
              ],
          }
      )
  
imports: from __future__ import absolute_import
  import copy
  import json
  import pytest
  from mock import Mock, call, patch
  from sagemaker import s3
  from sagemaker.remote_function.job import _JobSettings
  from sagemaker.session_settings import SessionSettings
  from sagemaker.workflow.condition_step import ConditionStep
  from sagemaker.workflow.conditions import ConditionEquals
  from sagemaker.workflow.execution_variables import ExecutionVariables
  from sagemaker.workflow.function_step import DelayedReturn, step
  from sagemaker.workflow.functions import JsonGet, Join
  from sagemaker.workflow.parameters import ParameterString
  from sagemaker.workflow.pipeline import Pipeline, PipelineGraph, _replace_pipeline_name_in_json_get_s3_uri
  from sagemaker.workflow.pipeline_context import _PipelineConfig
  from sagemaker.workflow.pipeline_definition_config import PipelineDefinitionConfig
  from sagemaker.workflow.pipeline_experiment_config import PipelineExperimentConfig, PipelineExperimentConfigProperties
  from sagemaker.workflow.step_collections import StepCollection
  from tests.unit.sagemaker.workflow.helpers import ordered, CustomStep, CustomFunctionStep
  from sagemaker.local.local_session import LocalSession
  from botocore.exceptions import ClientError
  from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig
label_desc: Use image node_id 18 for calling a global function with example usage: test_pipeline_basic(sagemaker_session_mock) without return types