code: def test_non_prepacked_inference_component_based_endpoint(
      self,
      mock_model_deploy: mock.Mock,
      mock_model_init: mock.Mock,
      mock_get_model_specs: mock.Mock,
      mock_session: mock.Mock,
      mock_is_valid_model_id: mock.Mock,
      mock_sagemaker_timestamp: mock.Mock,
  ):
      mock_model_deploy.return_value = default_predictor
  
      mock_sagemaker_timestamp.return_value = "7777"
  
      mock_is_valid_model_id.return_value = True
      model_id, _ = "js-trainable-model", "*"
  
      mock_get_model_specs.side_effect = (
          get_special_model_spec_for_inference_component_based_endpoint
      )
  
      mock_session.return_value = sagemaker_session
  
      model = JumpStartModel(
          model_id=model_id,
      )
  
      resource_requirements = ResourceRequirements(
          requests={
              "num_accelerators": 1,
              "memory": 34360,
          },
          limits={},
      )
  
      mock_model_init.assert_called_once_with(
          image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/"
          "autogluon-inference:0.4.3-gpu-py38",
          model_data="s3://jumpstart-cache-prod-us-west-2/autogluon-infer/"
          "v1.1.0/infer-autogluon-classification-ensemble.tar.gz",
          source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-"
          "tarballs/autogluon/inference/classification/v1.0.0/sourcedir.tar.gz",
          entry_point="inference.py",
          env={
              "SAGEMAKER_PROGRAM": "inference.py",
              "ENDPOINT_SERVER_TIMEOUT": "3600",
              "MODEL_CACHE_ROOT": "/opt/ml/model",
              "SAGEMAKER_ENV": "1",
              "SAGEMAKER_MODEL_SERVER_WORKERS": "1",
          },
          predictor_cls=Predictor,
          role=execution_role,
          sagemaker_session=sagemaker_session,
          enable_network_isolation=False,
          name="blahblahblah-7777",
          resources=resource_requirements,
      )
  
      model.deploy(endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED)
  
      mock_model_deploy.assert_called_once_with(
          initial_instance_count=1,
          instance_type="ml.p2.xlarge",
          wait=True,
          endpoint_name="blahblahblah-7777",
          tags=[
              {
                  "Key": JumpStartTag.MODEL_ID,
                  "Value": "js-trainable-model",
              },
              {"Key": JumpStartTag.MODEL_VERSION, "Value": "1.1.1"},
          ],
          endpoint_logging=False,
          resources=resource_requirements,
          endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED,
      )
  
imports: from __future__ import absolute_import
  from inspect import signature
  from typing import Optional, Set
  from unittest import mock
  import unittest
  from mock import MagicMock
  import pytest
  from sagemaker.async_inference.async_inference_config import AsyncInferenceConfig
  from sagemaker.jumpstart.artifacts.environment_variables import _retrieve_default_environment_variables
  from sagemaker.jumpstart.constants import DEFAULT_JUMPSTART_SAGEMAKER_SESSION
  from sagemaker.jumpstart.enums import JumpStartScriptScope, JumpStartTag
  from sagemaker.jumpstart.model import JumpStartModel
  from sagemaker.model import Model
  from sagemaker.predictor import Predictor
  from sagemaker.session_settings import SessionSettings
  from sagemaker.enums import EndpointType
  from sagemaker.compute_resource_requirements.resource_requirements import ResourceRequirements
  from tests.unit.sagemaker.jumpstart.utils import get_special_model_spec, overwrite_dictionary, get_special_model_spec_for_inference_component_based_endpoint
label_desc: Use image node_id 2 for calling the ModelTest obj's underlying member method code with example usage: obj.test_non_prepacked_inference_component_based_endpoint(mock_model_deploy, mock_model_init, mock_get_model_specs, mock_session, mock_is_valid_model_id, mock_sagemaker_timestamp) without return types