This is an automated email from the ASF dual-hosted git repository.

henry3260 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 239e49815ed Fix Breeze dry-run commands executing in quiet mode 
(#67132)
239e49815ed is described below

commit 239e49815ed57a2865dbb2dfe71a5ee2a16fa800
Author: Henry Chen <[email protected]>
AuthorDate: Sun Jun 28 21:23:44 2026 +0800

    Fix Breeze dry-run commands executing in quiet mode (#67132)
---
 dev/breeze/src/airflow_breeze/utils/run_utils.py |  8 ++++++--
 dev/breeze/tests/test_run_utils.py               | 11 +++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/dev/breeze/src/airflow_breeze/utils/run_utils.py 
b/dev/breeze/src/airflow_breeze/utils/run_utils.py
index 71df4c7f8c0..d8c0550019a 100644
--- a/dev/breeze/src/airflow_breeze/utils/run_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/run_utils.py
@@ -151,7 +151,11 @@ def run_command(
             kwargs["stderr"] = subprocess.STDOUT
     command_to_print = " ".join(shlex.quote(c) for c in cmd) if 
isinstance(cmd, list) else cmd
     env_to_print = get_environments_to_print(env)
-    if not get_verbose(verbose_override) and not get_dry_run(dry_run_override) 
or quiet:
+    verbose = get_verbose(verbose_override)
+    dry_run = get_dry_run(dry_run_override)
+    if dry_run and quiet:
+        return subprocess.CompletedProcess(cmd, returncode=0, stdout="", 
stderr="")
+    if not dry_run and (not verbose or quiet):
         if quiet and not kwargs.get("capture_output"):
             kwargs["stdout"] = subprocess.DEVNULL
             kwargs["stderr"] = subprocess.DEVNULL
@@ -166,7 +170,7 @@ def run_command(
         get_console(output=output).print(
             f"\n[info]{env_to_print}{escape(command_to_print)}[/]\n", 
soft_wrap=True
         )
-        if get_dry_run(dry_run_override):
+        if dry_run:
             return subprocess.CompletedProcess(cmd, returncode=0, stdout="", 
stderr="")
         try:
             if output_outside_the_group and os.environ.get("GITHUB_ACTIONS") 
== "true":
diff --git a/dev/breeze/tests/test_run_utils.py 
b/dev/breeze/tests/test_run_utils.py
index 37e0a2cfc97..4a9f01355b9 100644
--- a/dev/breeze/tests/test_run_utils.py
+++ b/dev/breeze/tests/test_run_utils.py
@@ -23,6 +23,7 @@ from airflow_breeze.utils.run_utils import (
     change_directory_permission,
     change_file_permission,
     check_if_buildx_plugin_installed,
+    run_command,
 )
 
 
@@ -46,6 +47,16 @@ def test_change_directory_permission(tmp_path):
     assert mode & stat.S_IXOTH
 
 
[email protected]("airflow_breeze.utils.run_utils.subprocess.run")
+def test_run_command_dry_run_quiet_does_not_execute(mock_subprocess_run):
+    result = run_command(["echo", "hello"], dry_run_override=True, quiet=True)
+
+    mock_subprocess_run.assert_not_called()
+    assert result.returncode == 0
+    assert result.stdout == ""
+    assert result.stderr == ""
+
+
 @mock.patch("airflow_breeze.utils.run_utils.run_command")
 @mock.patch("airflow_breeze.utils.run_utils.console_print")
 def test_check_buildah_is_installed(mock_console_print, mock_run_command):

Reply via email to