class_docstr: A MockSessionManager used for runtime tests.
  
  This is done so that our runtime tests don't rely on a specific SessionManager
  implementation.
code: def __init__(
      self,
      session_storage: SessionStorage,
      uploaded_file_manager: UploadedFileManager,
      script_cache: ScriptCache,
      message_enqueued_callback: Optional[Callable[[], None]],
  ) -> None:
      self._uploaded_file_mgr = uploaded_file_manager
      self._script_cache = script_cache
      self._message_enqueued_callback = message_enqueued_callback
  
      # Mapping of AppSession.id -> SessionInfo.
      self._session_info_by_id: Dict[str, SessionInfo] = {}
  
imports: import asyncio
  from typing import Callable, Dict, List, Optional
  from unittest import IsolatedAsyncioTestCase, mock
  from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
  from streamlit.runtime import Runtime, RuntimeConfig, RuntimeState
  from streamlit.runtime.app_session import AppSession
  from streamlit.runtime.caching.storage.dummy_cache_storage import MemoryCacheStorageManager
  from streamlit.runtime.memory_media_file_storage import MemoryMediaFileStorage
  from streamlit.runtime.memory_uploaded_file_manager import MemoryUploadedFileManager
  from streamlit.runtime.script_data import ScriptData
  from streamlit.runtime.scriptrunner.script_cache import ScriptCache
  from streamlit.runtime.session_manager import SessionClient, SessionInfo, SessionManager, SessionStorage
  from streamlit.runtime.uploaded_file_manager import UploadedFileManager
label_desc: Use image node_id 1 to create a new MockSessionManager object from inherited base classes: SessionManager with example: obj = MockSessionManager(session_storage, uploaded_file_manager, script_cache, message_enqueued_callback)