code: def h2o_test_setup(sys_args):
      h2o_py_dir = os.path.realpath(
          os.path.join(
              os.path.dirname(os.path.realpath(__file__)), ".."
          )
      )
      h2o_docs_dir = os.path.realpath(
          os.path.join(
              os.path.dirname(os.path.realpath(__file__)),
              "..",
              "..",
              "h2o-docs",
          )
      )
  
      parse_args(sys_args)
  
      sys.path.insert(1, h2o_py_dir)
      import h2o
      from tests import pyunit_utils, pydemo_utils, pybooklet_utils
  
      for pkg in (pyunit_utils, pybooklet_utils):
          setattr(pkg, "__on_hadoop__", _ON_HADOOP_)
          setattr(pkg, "__hadoop_namenode__", _HADOOP_NAMENODE_)
          setattr(pkg, "__test_name__", _TEST_NAME_)
          setattr(pkg, "__results_dir__", _RESULTS_DIR_)
  
      if _IS_PYUNIT_ or _IS_IPYNB_ or _IS_PYBOOKLET_ or _IS_PYDEMO_:
          pass
      else:
          raise (
              EnvironmentError,
              "Unrecognized test type. Must be of type ipynb, pydemo, pyunit, or pybooklet, but got: "
              "{0}".format(_TEST_NAME_),
          )
  
      print(
          "[{0}] {1}\n".format(
              strftime("%Y-%m-%d %H:%M:%S", gmtime()),
              "Connect to h2o on IP: {0} PORT: {1}".format(
                  _H2O_IP_, _H2O_PORT_
              ),
          )
      )
      auth = None
      if _LDAP_USER_NAME_ is not None and _LDAP_PASSWORD_ is not None:
          print("Using basic auth with %s user name" % _LDAP_USER_NAME_)
          auth = (_LDAP_USER_NAME_, _LDAP_PASSWORD_)
      elif _KERB_PRINCIPAL_ is not None:
          print(
              "Using SPNEGO auth with %s principal" % _KERB_PRINCIPAL_
          )
          from h2o.auth import SpnegoAuth
  
          auth = SpnegoAuth(service_principal=_KERB_PRINCIPAL_)
      else:
          print("Not using any auth")
      h2o.connect(
          ip=_H2O_IP_,
          port=_H2O_PORT_,
          verbose=False,
          auth=auth,
          **_H2O_EXTRA_CONNECT_ARGS_,
      )
      h2o.utils.config.H2OConfigReader.get_config()[
          "general.allow_breaking_changes"
      ] = True
  
      # rest_log = os.path.join(_RESULTS_DIR_, "rest.log")
      # h2o.start_logging(rest_log)
      # print "[{0}] {1}\n".format(strftime("%Y-%m-%d %H:%M:%S", gmtime()), "Started rest logging in: {0}".format(rest_log))
  
      h2o.log_and_echo(
          "------------------------------------------------------------"
      )
      h2o.log_and_echo("")
      h2o.log_and_echo("STARTING TEST: " + _TEST_NAME_)
      h2o.log_and_echo("")
      h2o.log_and_echo(
          "------------------------------------------------------------"
      )
  
      h2o.remove_all()
  
      if _IS_IPYNB_:
          pydemo_utils.ipy_notebook_exec(_TEST_NAME_)
      elif _IS_PYUNIT_:
          pyunit_utils.pyunit_exec(_TEST_NAME_)
      elif _IS_PYBOOKLET_:
          pybooklet_utils.pybooklet_exec(_TEST_NAME_)
      elif _IS_PYDEMO_:
          pydemo_utils.pydemo_exec(_TEST_NAME_)
  
imports: import sys, os
  from time import gmtime, strftime
label_desc: Use image node_id 4 for calling a global function with example usage: h2o_test_setup(sys_args) without return types