mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-12 15:19:16 +03:00
fix(cli): validate Windows subprocess environment
This commit is contained in:
@@ -1010,7 +1010,7 @@ class CliAppManager:
|
|||||||
"PATH": os.environ.get("PATH", f"{sr}\\system32;{sr}"),
|
"PATH": os.environ.get("PATH", f"{sr}\\system32;{sr}"),
|
||||||
"PYTHONUNBUFFERED": "1",
|
"PYTHONUNBUFFERED": "1",
|
||||||
}
|
}
|
||||||
return {k: v for k, v in env.items() if v is not None}
|
return env
|
||||||
return {
|
return {
|
||||||
"HOME": os.environ.get("HOME", "/tmp"),
|
"HOME": os.environ.get("HOME", "/tmp"),
|
||||||
"LANG": os.environ.get("LANG", "C.UTF-8"),
|
"LANG": os.environ.get("LANG", "C.UTF-8"),
|
||||||
|
|||||||
@@ -20,6 +20,21 @@ def test_subprocess_env_excludes_api_keys(monkeypatch, tmp_path) -> None:
|
|||||||
assert "PATH" in env
|
assert "PATH" in env
|
||||||
|
|
||||||
|
|
||||||
|
def test_subprocess_env_excludes_api_keys_on_windows(monkeypatch, tmp_path) -> None:
|
||||||
|
monkeypatch.setattr("nanobot.apps.cli.service.sys.platform", "win32")
|
||||||
|
monkeypatch.setenv("OPENAI_API_KEY", "sk-should-not-leak")
|
||||||
|
monkeypatch.setenv("ANTHROPIC_API_KEY", "sk-ant-leak")
|
||||||
|
|
||||||
|
manager = CliAppManager(workspace=tmp_path, data_dir=tmp_path / "cli-apps")
|
||||||
|
env = manager._subprocess_env()
|
||||||
|
|
||||||
|
assert "OPENAI_API_KEY" not in env
|
||||||
|
assert "ANTHROPIC_API_KEY" not in env
|
||||||
|
assert env["PYTHONUNBUFFERED"] == "1"
|
||||||
|
assert env["SYSTEMROOT"]
|
||||||
|
assert all(isinstance(value, str) for value in env.values())
|
||||||
|
|
||||||
|
|
||||||
def test_run_passes_filtered_env(monkeypatch, tmp_path) -> None:
|
def test_run_passes_filtered_env(monkeypatch, tmp_path) -> None:
|
||||||
monkeypatch.setenv("OPENAI_API_KEY", "sk-should-not-leak")
|
monkeypatch.setenv("OPENAI_API_KEY", "sk-should-not-leak")
|
||||||
manager = CliAppManager(workspace=tmp_path, data_dir=tmp_path / "cli-apps")
|
manager = CliAppManager(workspace=tmp_path, data_dir=tmp_path / "cli-apps")
|
||||||
|
|||||||
Reference in New Issue
Block a user