From 9a4eb2dea5af30ded5b1084c30fed8be75b1c389 Mon Sep 17 00:00:00 2001 From: mateo-berri <277851410+mateo-berri@users.noreply.github.com> Date: Sun, 17 May 2026 06:13:48 +0000 Subject: [PATCH] test(claude_code): reject empty stdin_input symmetric to prompt run_claude validated empty prompt strings but silently accepted stdin_input="", letting an empty stdin reach the subprocess and surface as a confusing CLI failure instead of a clear ValueError. --- tests/claude_code/_driver_unit_tests/test_cli_driver.py | 9 +++++++++ tests/claude_code/cli_driver.py | 2 ++ 2 files changed, 11 insertions(+) diff --git a/tests/claude_code/_driver_unit_tests/test_cli_driver.py b/tests/claude_code/_driver_unit_tests/test_cli_driver.py index fb9fc1e5c49..d75d237075a 100644 --- a/tests/claude_code/_driver_unit_tests/test_cli_driver.py +++ b/tests/claude_code/_driver_unit_tests/test_cli_driver.py @@ -301,6 +301,15 @@ def test_run_claude_validates_required_params(): api_key="k", runner=runner, ) + with pytest.raises(ValueError, match="stdin_input"): + run_claude( + prompt=None, + stdin_input="", + model="m", + base_url="http://x", + api_key="k", + runner=runner, + ) with pytest.raises(ValueError, match="model"): run_claude( prompt="hi", diff --git a/tests/claude_code/cli_driver.py b/tests/claude_code/cli_driver.py index 00d18bc2b49..d59c35dbf68 100644 --- a/tests/claude_code/cli_driver.py +++ b/tests/claude_code/cli_driver.py @@ -125,6 +125,8 @@ def run_claude( raise ValueError("must supply only one of `prompt` or `stdin_input`, not both") if prompt is not None and not prompt: raise ValueError("prompt must be a non-empty string when provided") + if stdin_input is not None and not stdin_input: + raise ValueError("stdin_input must be a non-empty string when provided") if not model: raise ValueError("model must be a non-empty string") if not base_url: