mirror of
https://github.com/anthropics/claude-code-sdk-python.git
synced 2025-07-07 14:45:00 +00:00
Merge pull request #42 from RomainGehrig/fix/cwd-not-exists
Explicit error if the cwd does not exist
This commit is contained in:
commit
343ec4812c
2 changed files with 23 additions and 0 deletions
|
@ -141,6 +141,11 @@ class SubprocessCLITransport(Transport):
|
||||||
self._stderr_stream = TextReceiveStream(self._process.stderr)
|
self._stderr_stream = TextReceiveStream(self._process.stderr)
|
||||||
|
|
||||||
except FileNotFoundError as e:
|
except FileNotFoundError as e:
|
||||||
|
# Check if the error comes from the working directory or the CLI
|
||||||
|
if self._cwd and not Path(self._cwd).exists():
|
||||||
|
raise CLIConnectionError(
|
||||||
|
f"Working directory does not exist: {self._cwd}"
|
||||||
|
) from e
|
||||||
raise CLINotFoundError(f"Claude Code not found at: {self._cli_path}") from e
|
raise CLINotFoundError(f"Claude Code not found at: {self._cli_path}") from e
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise CLIConnectionError(f"Failed to start Claude Code: {e}") from e
|
raise CLIConnectionError(f"Failed to start Claude Code: {e}") from e
|
||||||
|
|
|
@ -132,3 +132,21 @@ class TestSubprocessCLITransport:
|
||||||
# So we just verify the transport can be created and basic structure is correct
|
# So we just verify the transport can be created and basic structure is correct
|
||||||
assert transport._prompt == "test"
|
assert transport._prompt == "test"
|
||||||
assert transport._cli_path == "/usr/bin/claude"
|
assert transport._cli_path == "/usr/bin/claude"
|
||||||
|
|
||||||
|
def test_connect_with_nonexistent_cwd(self):
|
||||||
|
"""Test that connect raises CLIConnectionError when cwd doesn't exist."""
|
||||||
|
from claude_code_sdk._errors import CLIConnectionError
|
||||||
|
|
||||||
|
async def _test():
|
||||||
|
transport = SubprocessCLITransport(
|
||||||
|
prompt="test",
|
||||||
|
options=ClaudeCodeOptions(cwd="/this/directory/does/not/exist"),
|
||||||
|
cli_path="/usr/bin/claude",
|
||||||
|
)
|
||||||
|
|
||||||
|
with pytest.raises(CLIConnectionError) as exc_info:
|
||||||
|
await transport.connect()
|
||||||
|
|
||||||
|
assert "/this/directory/does/not/exist" in str(exc_info.value)
|
||||||
|
|
||||||
|
anyio.run(_test)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue