class_docstr: Run tests in a subprocess
      
class_docstr_tok: ["Run","tests","in","a","subprocess"]
docstr: Kill process if it's still alive, and clean up temporary directories
code: def cleanup(self):
      "Kill process if it's still alive, and clean up temporary directories"
      self.cleanup_process()
      for td in self.dirs:
          td.cleanup()
  
imports: from __future__ import print_function
  import argparse
  import json
  import multiprocessing.pool
  import os
  import stat
  import re
  import requests
  import shutil
  import signal
  import sys
  import subprocess
  import time
  from .iptest import have, test_group_names, test_sections, StreamCapturer, test_for
  from IPython.utils.path import compress_user
  from IPython.utils.py3compat import bytes_to_str
  from IPython.utils.sysinfo import get_sys_info
  from IPython.utils.tempdir import TemporaryDirectory
  from IPython.utils.text import strip_ansi
label_desc: Use image node_id 7 for calling the TestController obj's underlying member method code with example usage: obj.cleanup() without return types