code: def test_non_prepacked(
      self,
      mock_estimator_deploy: mock.Mock,
      mock_estimator_fit: mock.Mock,
      mock_estimator_init: mock.Mock,
      mock_get_model_specs: mock.Mock,
      mock_session_estimator: mock.Mock,
      mock_session_model: mock.Mock,
      mock_is_valid_model_id: mock.Mock,
      mock_sagemaker_timestamp: mock.Mock,
      mock_jumpstart_model_factory_logger: mock.Mock,
      mock_jumpstart_estimator_factory_logger: mock.Mock,
  ):
      mock_is_valid_model_id.return_value = True
  
      mock_sagemaker_timestamp.return_value = "9876"
  
      mock_estimator_deploy.return_value = default_predictor
  
      model_id, model_version = "js-trainable-model", "*"
  
      mock_get_model_specs.side_effect = get_special_model_spec
  
      mock_session_estimator.return_value = sagemaker_session
      mock_session_model.return_value = sagemaker_session
  
      estimator = JumpStartEstimator(
          model_id=model_id,
      )
      mock_jumpstart_estimator_factory_logger.info.assert_called_once_with(
          "No instance type selected for training job. Defaulting to %s.",
          "ml.p3.2xlarge",
      )
  
      mock_estimator_init.assert_called_once_with(
          instance_type="ml.p3.2xlarge",
          instance_count=1,
          image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/autogluon-training:0.4.3-gpu-py38",
          model_uri="s3://jumpstart-cache-prod-us-west-2/autogluon-training/train-autogluon-"
          "classification-ensemble.tar.gz",
          source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/autogluon/"
          "transfer_learning/classification/v1.0.2/sourcedir.tar.gz",
          entry_point="transfer_learning.py",
          hyperparameters={
              "eval_metric": "auto",
              "presets": "medium_quality",
              "auto_stack": "False",
              "num_bag_folds": "0",
              "num_bag_sets": "1",
              "num_stack_levels": "0",
              "refit_full": "False",
              "set_best_to_refit_full": "False",
              "save_space": "False",
              "verbosity": "2",
          },
          role=execution_role,
          encrypt_inter_container_traffic=True,
          sagemaker_session=sagemaker_session,
          enable_network_isolation=False,
          tags=[
              {
                  "Key": JumpStartTag.MODEL_ID,
                  "Value": "js-trainable-model",
              },
              {"Key": JumpStartTag.MODEL_VERSION, "Value": "1.1.1"},
          ],
      )
  
      channels = {
          "training": f"s3://{get_jumpstart_content_bucket(region)}/"
          f"{get_training_dataset_for_model_and_version(model_id, model_version)}",
      }
  
      mock_jumpstart_estimator_factory_logger.info.reset_mock()
      estimator.fit(channels)
      mock_jumpstart_estimator_factory_logger.info.assert_not_called()
  
      mock_estimator_fit.assert_called_once_with(
          inputs=channels, wait=True, job_name="blahblahblah-9876"
      )
  
      mock_jumpstart_model_factory_logger.info.reset_mock()
      mock_jumpstart_estimator_factory_logger.info.reset_mock()
      estimator.deploy()
      mock_jumpstart_model_factory_logger.info.assert_called_once_with(
          "No instance type selected for inference hosting endpoint. Defaulting to %s.",
          "ml.p2.xlarge",
      )
      mock_jumpstart_estimator_factory_logger.info.assert_not_called()
  
      mock_estimator_deploy.assert_called_once_with(
          instance_type="ml.p2.xlarge",
          initial_instance_count=1,
          image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/autogluon-inference:0.4.3-gpu-py38",
          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,
          wait=True,
          use_compiled_model=False,
          enable_network_isolation=False,
          model_name="blahblahblah-9876",
          endpoint_name="blahblahblah-9876",
          tags=[
              {
                  "Key": JumpStartTag.MODEL_ID,
                  "Value": "js-trainable-model",
              },
              {"Key": JumpStartTag.MODEL_VERSION, "Value": "1.1.1"},
          ],
      )
  
imports: from __future__ import absolute_import
  import time
  from typing import Optional, Set
  from unittest import mock
  import unittest
  from inspect import signature
  import pytest
  from sagemaker.async_inference.async_inference_config import AsyncInferenceConfig
  from sagemaker.debugger.profiler_config import ProfilerConfig
  from sagemaker.estimator import Estimator
  from sagemaker.instance_group import InstanceGroup
  from sagemaker.jumpstart.artifacts.environment_variables import _retrieve_default_environment_variables
  from sagemaker.jumpstart.artifacts.hyperparameters import _retrieve_default_hyperparameters
  from sagemaker.jumpstart.artifacts.metric_definitions import _retrieve_default_training_metric_definitions
  from sagemaker.jumpstart.constants import DEFAULT_JUMPSTART_SAGEMAKER_SESSION
  from sagemaker.jumpstart.enums import JumpStartScriptScope, JumpStartTag
  from sagemaker.jumpstart.estimator import JumpStartEstimator
  from sagemaker.jumpstart.utils import get_jumpstart_content_bucket
  from sagemaker.session_settings import SessionSettings
  from tests.integ.sagemaker.jumpstart.utils import get_training_dataset_for_model_and_version
  from sagemaker.model import Model
  from sagemaker.predictor import Predictor
  from tests.unit.sagemaker.jumpstart.utils import get_special_model_spec, overwrite_dictionary
label_desc: Use image node_id 1 for calling the EstimatorTest obj's underlying member method code with example usage: obj.test_non_prepacked(mock_estimator_deploy, mock_estimator_fit, mock_estimator_init, mock_get_model_specs, mock_session_estimator, mock_session_model, mock_is_valid_model_id, mock_sagemaker_timestamp, mock_jumpstart_model_factory_logger, mock_jumpstart_estimator_factory_logger) without return types