code: def test_recipe(file, setup_recipe_folder):
      print("DGL enter train {}".format(file))
      try:
          run = subprocess.run(
              ["dgl", "train", "--cfg", file],
              timeout=5,
              capture_output=True,
          )
          sh_stdout, sh_stderr = run.stdout, run.stderr
      except subprocess.TimeoutExpired as e:
          sh_stdout = e.stdout
          sh_stderr = e.stderr
      if sh_stderr is not None and len(sh_stderr) != 0:
          error_str = sh_stderr.decode("utf-8")
          lines = error_str.split("\n")
          for line in lines:
              line = line.strip()
              if (
                  line.startswith("WARNING")
                  or line.startswith("Aborted")
                  or line.startswith("0%")
              ):
                  continue
              else:
                  assert len(line) == 0, error_str
      print("{} stdout: {}".format(file, sh_stdout))
      print("{} stderr: {}".format(file, sh_stderr))
  
file_path: dgl/dglgo/tests/test_pipeline.py
imports: import subprocess
  from pathlib import Path
  from typing import NamedTuple
  import pytest
label_desc: Use image node_id 3 for calling a global function with example usage: test_recipe(file, setup_recipe_folder) without return types