code: def test_runner_failure() -> None:
      runner = Runner()
      with assert_raises(CommandError) as cme:
          runner.run(py2cmd("import sys; sys.exit(53)"))
      eq_(53, cme.value.code)
  
      # but we bubble up FileNotFoundError if executable does not exist at all
      with assert_raises(FileNotFoundError) as cme:
          runner.run(["dne1l2k3j4"])
  
imports: from __future__ import annotations
  import logging
  import os
  import signal
  import sys
  import unittest.mock
  from threading import Lock, Thread
  from time import sleep, time
  from typing import Any
  import pytest
  from datalad.tests.utils_pytest import OBSCURE_FILENAME, SkipTest, assert_cwd_unchanged, assert_in, assert_raises, eq_, integration, ok_, ok_file_has_content, skip_if_on_windows, swallow_logs, with_tempfile
  from datalad.utils import CMD_MAX_ARG, Path, on_windows
  from ..None import CommandError, KillOutput, Protocol, Runner, StdOutCapture, StdOutErrCapture
  from .utils import py2cmd
label_desc: Use image node_id 4 for calling a global function with example usage: test_runner_failure() without return types