From 8bb60ff0391d0070ffcdaae85557721920b80406 Mon Sep 17 00:00:00 2001 From: m4dni5 Date: Mon, 8 Jun 2026 10:11:57 -0700 Subject: [PATCH] test: add pytest guard for subprocess stdin= in TUI-context code Wraps scripts/check_subprocess_stdin.py as a pytest so CI catches regressions when new subprocess calls are added without stdin=. --- tests/tools/test_subprocess_stdin_guard.py | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/tools/test_subprocess_stdin_guard.py diff --git a/tests/tools/test_subprocess_stdin_guard.py b/tests/tools/test_subprocess_stdin_guard.py new file mode 100644 index 00000000000..ab4ea5690ab --- /dev/null +++ b/tests/tools/test_subprocess_stdin_guard.py @@ -0,0 +1,25 @@ +"""Verify that TUI-context subprocess calls specify stdin=. + +This is the pytest wrapper for scripts/check_subprocess_stdin.py. +It runs as part of the test suite so CI catches regressions when new +subprocess calls are added without stdin=subprocess.DEVNULL. +""" + +import subprocess +import sys +from pathlib import Path + +SCRIPT = Path(__file__).resolve().parents[2] / "scripts" / "check_subprocess_stdin.py" + + +def test_all_tui_subprocess_calls_have_stdin(): + """Every subprocess.run/Popen in TUI-context code must set stdin=.""" + result = subprocess.run( + [sys.executable, str(SCRIPT)], + capture_output=True, + text=True, + timeout=30, + ) + assert result.returncode == 0, ( + f"subprocess stdin= check failed:\n{result.stdout}\n{result.stderr}" + )