code: def test_dry_run(gcloud_run, subprocess):
      res = runner.invoke(
          cli.app, ["connect", "test-cluster", "notebook", "--dry-run"]
      )
      assert res.exit_code == 0
      assert gcloud_run.call_count == 0
      assert subprocess.Popen.call_count == 0
  
file_path: hail/hail/python/test/hailtop/hailctl/dataproc/test_connect.py
imports: from unittest.mock import Mock
  from typer.testing import CliRunner
  import pytest
  from hailtop.hailctl.dataproc import cli
label_desc: Use image node_id 4 for calling a global function with example usage: test_dry_run(gcloud_run, subprocess) without return types