code: def evaluate_estimator_workflow_with_kwargs(
      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_timestamp: mock.Mock,
      mock_retrieve_default_environment_variables: mock.Mock,
      mock_retrieve_metric_definitions: mock.Mock,
      mock_retrieve_hyperparameters: mock.Mock,
      init_kwargs: Optional[dict] = None,
      fit_kwargs: Optional[dict] = None,
      deploy_kwargs: Optional[dict] = None,
  ):
      mock_retrieve_default_environment_variables.side_effect = (
          _retrieve_default_environment_variables
      )
  
      mock_retrieve_metric_definitions.side_effect = (
          _retrieve_default_training_metric_definitions
      )
  
      mock_retrieve_hyperparameters.side_effect = (
          _retrieve_default_hyperparameters
      )
  
      if init_kwargs is None:
          init_kwargs = {}
  
      if fit_kwargs is None:
          fit_kwargs = {}
  
      if deploy_kwargs is None:
          deploy_kwargs = {}
  
      mock_timestamp.return_value = "1234"
  
      mock_estimator_deploy.return_value = default_predictor
  
      mock_is_valid_model_id.return_value = True
  
      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,
          tolerate_deprecated_model=True,
          tolerate_vulnerable_model=True,
          region=region,
          **init_kwargs,
      )
  
      expected_init_kwargs = overwrite_dictionary(
          {
              "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": "sagemaker-sdk:jumpstart-model-id",
                      "Value": "js-trainable-model",
                  },
                  {
                      "Key": "sagemaker-sdk:jumpstart-model-version",
                      "Value": "1.1.1",
                  },
              ],
          },
          init_kwargs,
      )
  
      mock_estimator_init.assert_called_once_with(
          **expected_init_kwargs
      )
  
      channels = {
          "training": f"s3://{get_jumpstart_content_bucket(region)}/"
          f"{get_training_dataset_for_model_and_version(model_id, model_version)}",
      }
  
      expected_fit_kwargs = overwrite_dictionary(
          {
              "inputs": channels,
              "wait": True,
              "job_name": "none_of_your_business",
          },
          fit_kwargs,
      )
  
      estimator.fit(**expected_fit_kwargs)
  
      mock_estimator_fit.assert_called_once_with(**expected_fit_kwargs)
  
      mock_retrieve_default_environment_variables.assert_called_once()
      mock_retrieve_metric_definitions.assert_called_once()
      mock_retrieve_hyperparameters.assert_called_once()
      estimator.deploy(**deploy_kwargs)
  
      expected_deploy_kwargs = overwrite_dictionary(
          {
              "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": init_kwargs["role"],
              "enable_network_isolation": False,
              "use_compiled_model": False,
              "model_name": "blahblahblah-1234",
              "endpoint_name": "blahblahblah-1234",
              "tags": [
                  {
                      "Key": "sagemaker-sdk:jumpstart-model-id",
                      "Value": "js-trainable-model",
                  },
                  {
                      "Key": "sagemaker-sdk:jumpstart-model-version",
                      "Value": "1.1.1",
                  },
              ],
          },
          deploy_kwargs,
      )
  
      mock_estimator_deploy.assert_called_once_with(
          **expected_deploy_kwargs
      )
  
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 9 for calling the EstimatorTest obj's underlying member method code with example usage: obj.evaluate_estimator_workflow_with_kwargs(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_timestamp, mock_retrieve_default_environment_variables, mock_retrieve_metric_definitions, mock_retrieve_hyperparameters, init_kwargs, fit_kwargs, deploy_kwargs) without return types