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):