code: def test_prepare_and_upload_runtime_scripts(
      mock_upload, config_uploader
  ):
      s3_path = config_uploader._prepare_and_upload_runtime_scripts(
          spark_config=config_uploader.remote_decorator_config.spark_config,
          s3_base_uri=config_uploader.remote_decorator_config.s3_root_uri,
          s3_kms_key=config_uploader.remote_decorator_config.s3_kms_key,
          sagemaker_session=sagemaker_session,
      )
      assert s3_path == mock_upload.return_value
      mock_upload.assert_called_once_with(
          spark_config=config_uploader.remote_decorator_config.spark_config,
          s3_base_uri=config_uploader.remote_decorator_config.s3_root_uri,
          s3_kms_key=config_uploader.remote_decorator_config.s3_kms_key,
          sagemaker_session=sagemaker_session,
      )
  
imports: from __future__ import absolute_import
  import pytest
  from mock import Mock, patch
  from sagemaker.feature_store.feature_processor._config_uploader import ConfigUploader
  from sagemaker.feature_store.feature_processor._constants import SPARK_JAR_FILES_PATH, SPARK_FILES_PATH, SPARK_PY_FILES_PATH, SAGEMAKER_WHL_FILE_S3_PATH
  from sagemaker.remote_function.job import _JobSettings, RUNTIME_SCRIPTS_CHANNEL_NAME, REMOTE_FUNCTION_WORKSPACE, SPARK_CONF_CHANNEL_NAME
  from sagemaker.remote_function.spark_config import SparkConfig
  from sagemaker.session import Session
label_desc: Use image node_id 11 for calling a global function with example usage: test_prepare_and_upload_runtime_scripts(mock_upload, config_uploader) without return types