code: def test_get_connect_info(self, km):
      cinfo = km.get_connection_info()
      keys = sorted(cinfo.keys())
      expected = sorted(
          [
              "ip",
              "transport",
              "hb_port",
              "shell_port",
              "stdin_port",
              "iopub_port",
              "control_port",
              "key",
              "signature_scheme",
          ]
      )
      assert keys == expected
  
imports: import asyncio
  import concurrent.futures
  import json
  import os
  import signal
  import sys
  import time
  from subprocess import PIPE
  import pytest
  from jupyter_core import paths
  from traitlets.config.loader import Config
  from jupyter_client import AsyncKernelManager, KernelManager
  from jupyter_client.manager import _ShutdownStatus, start_new_async_kernel, start_new_kernel
  from .utils import AsyncKMSubclass, SyncKMSubclass
label_desc: Use image node_id 2 for calling the TestKernelManager obj's underlying member method code with example usage: obj.test_get_connect_info(km) without return types