litellm/tests/test_litellm/proxy/client
devin-ai-integration[bot] f9c6eda909
fix(cli): quote the Claude Code apiKeyHelper for cmd.exe on Windows (#39174)
* fix(cli): quote the Claude Code apiKeyHelper for cmd.exe on Windows

lite up and lite login --config-claude wrote the helper command with
POSIX shlex quoting, so a backslashed Windows install path came out
wrapped in single quotes that cmd.exe and PowerShell take literally.
Quote every token with the cmd.exe rules already used for agent shims
when running on Windows, and keep the POSIX output unchanged elsewhere.

Resolves LIT-6627

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(cli): split the Windows apiKeyHelper with cmd.exe and C runtime rules

The invocation test pulled tokens back out with a regex, which cannot see
the doubled quotes or the percent guard quote_for_cmd emits. Model the two
parsers that read the helper on Windows instead and check argv round
trips for backslashed, spaced, metacharacter, percent and quoted tokens

---------

Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-01 15:08:00 -07:00
..
cli fix(cli): quote the Claude Code apiKeyHelper for cmd.exe on Windows (#39174) 2026-09-01 15:08:00 -07:00
conftest.py fix(proxy): give every requests call a timeout so a silent server cannot hang the caller 2026-08-25 10:12:33 -07:00
test_chat.py fix(proxy): give the remaining CLI clients a request timeout 2026-08-29 13:32:39 -07:00
test_client.py fix(proxy): give the remaining CLI clients a request timeout 2026-08-29 13:32:39 -07:00
test_credentials.py fix(proxy): give the remaining CLI clients a request timeout 2026-08-29 13:32:39 -07:00
test_http_client.py test: drop the cwd-relative sys.path.insert calls from the test suite (#37802) 2026-08-22 09:25:58 -07:00
test_http_commands.py test: drop the cwd-relative sys.path.insert calls from the test suite (#37802) 2026-08-22 09:25:58 -07:00
test_keys.py fix(proxy): give the remaining CLI clients a request timeout 2026-08-29 13:32:39 -07:00
test_model_groups.py fix(proxy): give the remaining CLI clients a request timeout 2026-08-29 13:32:39 -07:00
test_models.py fix(proxy): give the remaining CLI clients a request timeout 2026-08-29 13:32:39 -07:00
test_teams.py fix(proxy): give every requests call a timeout so a silent server cannot hang the caller 2026-08-25 10:12:33 -07:00
test_users.py fix(proxy): give every requests call a timeout so a silent server cannot hang the caller 2026-08-25 10:12:33 -07:00