code: def test_subcommand_list(tmpdir):
      a = tmpdir.mkdir("a")
      for cmd in (
          "jupyter-foo-bar",
          "jupyter-xyz",
          "jupyter-babel-fish",
      ):
          a.join(cmd).write("")
      b = tmpdir.mkdir("b")
      for cmd in (
          "jupyter-foo",
          "jupyterstuff",
          "jupyter-yo-eyropa-ganymyde-callysto",
      ):
          b.join(cmd).write("")
      c = tmpdir.mkdir("c")
      for cmd in ("jupyter-baz", "jupyter-bop"):
          c.join(cmd).write("")
  
      path = os.pathsep.join(map(str, [a, b]))
  
      def get_path(dummy):
          return str(c)
  
      with patch.object(sysconfig, "get_path", get_path), patch.dict(
          "os.environ", {"PATH": path}
      ):
          subcommands = list_subcommands()
          assert subcommands == [
              "babel-fish",
              "baz",
              "bop",
              "foo",
              "xyz",
              "yo-eyropa-ganymyde-callysto",
          ]
  
imports: from __future__ import annotations
  import json
  import os
  import sys
  import sysconfig
  from subprocess import PIPE, CalledProcessError, check_output
  from unittest.mock import patch
  import pytest
  from jupyter_core import __version__
  from jupyter_core.command import list_subcommands
  from jupyter_core.paths import jupyter_config_dir, jupyter_config_path, jupyter_data_dir, jupyter_path, jupyter_runtime_dir
label_desc: Use image node_id 15 for calling a global function with example usage: test_subcommand_list(tmpdir) and returns: str