code: def test_ssh_custom_identity_file():
      ifile = "/tmp/dl-test-ssh-id"  # Travis
      if not op.exists(ifile):
          raise SkipTest(
              "Travis-specific '{}' identity file does not exist".format(
                  ifile
              )
          )
  
      with patch_config({"datalad.ssh.identityfile": ifile}):
          with swallow_logs(new_level=logging.DEBUG) as cml:
              manager = SSHManager()
              ssh = manager.get_connection("ssh://datalad-test")
              cmd_out, _ = ssh("echo blah")
              if _ssh_manager_is_multiplex:
                  expected_socket = op.join(
                      str(manager.socket_dir),
                      get_connection_hash(
                          "datalad-test", identity_file=ifile
                      ),
                  )
                  ok_(exists(expected_socket))
              manager.close()
              assert_in("-i", cml.out)
              assert_in(ifile, cml.out)
  
file_path: datalad/datalad/support/tests/test_sshconnector.py
imports: import logging
  import os.path
  from os.path import exists, getmtime, isdir
  from os.path import join
  from datalad.tests.utils_pytest import SkipTest, assert_false, assert_in, assert_is_instance, assert_raises, eq_, get_most_obscure_supported_name, get_ssh_port, ok_, patch_config, skip_if_on_windows, skip_nomultiplex_ssh, skip_ssh, swallow_logs, with_tempfile, with_tree
  from datalad.utils import Path
  from ..sshconnector import MultiplexSSHConnection, MultiplexSSHManager, NoMultiplexSSHConnection, SSHConnection, SSHManager, get_connection_hash, sh_quote
label_desc: Use image node_id 7 for calling a global function with example usage: test_ssh_custom_identity_file() without return types