code: def test_ssl_args_plumbing(ManagedServerLoop: MSL) -> None:
      with mock.patch.object(ssl, "SSLContext"):
          with ManagedServerLoop({}, ssl_certfile="foo") as server:
              assert (
                  server._http.ssl_options.load_cert_chain.call_args[0]
                  == ()
              )
              assert server._http.ssl_options.load_cert_chain.call_args[
                  1
              ] == dict(certfile="foo", keyfile=None, password=None)
  
      with mock.patch.object(ssl, "SSLContext"):
          with ManagedServerLoop(
              {}, ssl_certfile="foo", ssl_keyfile="baz"
          ) as server:
              assert (
                  server._http.ssl_options.load_cert_chain.call_args[0]
                  == ()
              )
              assert server._http.ssl_options.load_cert_chain.call_args[
                  1
              ] == dict(certfile="foo", keyfile="baz", password=None)
  
      with mock.patch.object(ssl, "SSLContext"):
          with ManagedServerLoop(
              {},
              ssl_certfile="foo",
              ssl_keyfile="baz",
              ssl_password="bar",
          ) as server:
              assert (
                  server._http.ssl_options.load_cert_chain.call_args[0]
                  == ()
              )
              assert server._http.ssl_options.load_cert_chain.call_args[
                  1
              ] == dict(certfile="foo", keyfile="baz", password="bar")
  
imports: from __future__ import annotations
  import pytest
  import asyncio
  import logging
  import re
  import ssl
  import sys
  import time
  from datetime import timedelta
  from unittest import mock
  import tornado
  from _util_server import http_get, url, websocket_open, ws_url
  from tornado.httpclient import HTTPError
  from tornado.httpserver import HTTPServer
  from tornado.ioloop import IOLoop
  from bokeh.application import Application
  from bokeh.application.handlers import Handler
  from bokeh.client import pull_session
  from bokeh.core.properties import List, String
  from bokeh.core.types import ID
  from bokeh.model import Model
  from bokeh.server.server import BaseServer, Server
  from bokeh.server.tornado import BokehTornado
  from bokeh.util.token import check_token_signature, generate_jwt_token, get_session_id, get_token_payload
  from tests.support.plugins.managed_server_loop import MSL
  import bokeh.server.server
label_desc: Use image node_id 8 for calling a global function with example usage: test_ssl_args_plumbing(ManagedServerLoop) without return types