code: def test_deploy(tfo, time, sagemaker_session):
      framework_model = DummyFrameworkModel(sagemaker_session)
      sparkml_model = SparkMLModel(
          model_data=MODEL_DATA_2,
          role=ROLE,
          sagemaker_session=sagemaker_session,
      )
      model = PipelineModel(
          models=[framework_model, sparkml_model],
          role=ROLE,
          sagemaker_session=sagemaker_session,
      )
      kms_key = "pipeline-model-deploy-kms-key"
      model.deploy(
          instance_type=INSTANCE_TYPE,
          initial_instance_count=1,
          kms_key=kms_key,
      )
      sagemaker_session.endpoint_from_production_variants.assert_called_with(
          name="mi-1-2017-10-10-14-14-15",
          production_variants=[
              {
                  "InitialVariantWeight": 1,
                  "ModelName": "mi-1-2017-10-10-14-14-15",
                  "InstanceType": INSTANCE_TYPE,
                  "InitialInstanceCount": 1,
                  "VariantName": "AllTraffic",
              }
          ],
          tags=None,
          kms_key=kms_key,
          wait=True,
          data_capture_config_dict=None,
      )
  
imports: from __future__ import absolute_import
  import copy
  import pytest
  from botocore.utils import merge_dicts
  from mock import Mock, patch
  from mock.mock import ANY
  from sagemaker.model import FrameworkModel
  from sagemaker.pipeline import PipelineModel
  from sagemaker.predictor import Predictor
  from sagemaker.session_settings import SessionSettings
  from sagemaker.sparkml import SparkMLModel
  from tests.unit import SAGEMAKER_CONFIG_MODEL, SAGEMAKER_CONFIG_ENDPOINT_CONFIG
label_desc: Use image node_id 3 for calling a global function with example usage: test_deploy(tfo, time, sagemaker_session) without return types