code: def test_install_app_process(
      subprocess_mock, source_url, git_url, git_sha, tmpdir
  ):
      app_folder_dir = Path(tmpdir / "some_random_directory").absolute()
      app_folder_dir.mkdir()
  
      cmd_install._install_app_from_source(
          source_url,
          git_url,
          folder_name=str(app_folder_dir),
          overwrite=True,
          git_sha=git_sha,
      )
      assert subprocess_mock.check_output.call_args_list[0].args == (
          ["git", "clone", git_url],
      )
      if git_sha:
          assert subprocess_mock.check_output.call_args_list[
              1
          ].args == (
              ["git", "checkout", git_sha],
          )
      assert subprocess_mock.call.call_args_list[0].args == (
          "pip install -r requirements.txt",
      )
      assert subprocess_mock.call.call_args_list[1].args == (
          "pip install -e .",
      )
  
imports: import os
  import subprocess
  from pathlib import Path
  from unittest import mock
  import pytest
  from click.testing import CliRunner
  from lightning.app.cli import cmd_install, lightning_cli
  from lightning.app.testing.helpers import _RunIf
label_desc: Use image node_id 19 for calling a global function with example usage: test_install_app_process(subprocess_mock, source_url, git_url, git_sha, tmpdir) without return types