code: def test_start_history_server(
      mock_check_history_server,
      mock_history_server_run,
      mock_prepare_history_server_env_variables,
      mock_pull_image,
      mock_ecr_login,
      py_spark_processor,
  ):
      mock_ecr_login.return_value = True
      py_spark_processor.start_history_server()
  
      mock_pull_image.assert_called_once()
      mock_prepare_history_server_env_variables.assert_called_once()
      mock_history_server_run.assert_called_once()
      mock_check_history_server.assert_called_once()
  
imports: from __future__ import absolute_import
  import pathlib
  import subprocess
  import tempfile
  from io import BytesIO
  from typing import Generator
  from unittest.case import TestCase
  from unittest.mock import MagicMock, Mock, call, mock_open, patch
  import pytest
  from sagemaker.processing import ProcessingInput, ProcessingOutput
  from sagemaker.session_settings import SessionSettings
  from sagemaker.spark.processing import PySparkProcessor, SparkJarProcessor, _SparkProcessorBase, _HistoryServer, FileType, SparkConfigUtils
label_desc: Use image node_id 18 for calling a global function with example usage: test_start_history_server(mock_check_history_server, mock_history_server_run, mock_prepare_history_server_env_variables, mock_pull_image, mock_ecr_login, py_spark_processor) without return types