kin: auto-commit after pipeline
This commit is contained in:
parent
76a88714e4
commit
4bc421e117
5 changed files with 195 additions and 6 deletions
|
|
@ -1423,6 +1423,75 @@ class TestClaudePath:
|
|||
"KIN-057: _resolve_claude_cmd должен возвращать строку даже при пустом os PATH"
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# KIN-FIX-013: регрессия — удалён мёртвый код SSH_AGENT_PID
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_build_claude_env_no_ssh_agent_pid_injection(self):
|
||||
"""Регрессия KIN-FIX-013: SSH_AGENT_PID не должен искусственно добавляться.
|
||||
|
||||
Если SSH_AGENT_PID отсутствует в os.environ — его не должно быть в результате.
|
||||
Ветка `if 'SSH_AGENT_PID' not in env` была always-no-op (env — копия os.environ,
|
||||
поэтому условие всегда False при наличии ключа). Удалена как мёртвый код.
|
||||
"""
|
||||
env_without_pid = {k: v for k, v in __import__("os").environ.items()
|
||||
if k != "SSH_AGENT_PID"}
|
||||
with patch.dict("os.environ", env_without_pid, clear=True):
|
||||
env = _build_claude_env()
|
||||
assert "SSH_AGENT_PID" not in env, (
|
||||
"Регрессия KIN-FIX-013: SSH_AGENT_PID не должен появляться в env "
|
||||
"если его нет в os.environ — мёртвый код был удалён"
|
||||
)
|
||||
|
||||
def test_build_claude_env_ssh_agent_pid_preserved_when_set(self):
|
||||
"""SSH_AGENT_PID из os.environ наследуется через os.environ.copy() штатно."""
|
||||
with patch.dict("os.environ", {"SSH_AGENT_PID": "12345"}):
|
||||
env = _build_claude_env()
|
||||
assert env.get("SSH_AGENT_PID") == "12345", (
|
||||
"SSH_AGENT_PID из os.environ должен наследоваться через copy()"
|
||||
)
|
||||
|
||||
def test_build_claude_env_no_dead_ssh_agent_pid_code(self):
|
||||
"""Регрессия KIN-FIX-013: исходный код _build_claude_env не содержит SSH_AGENT_PID.
|
||||
|
||||
Любое возвращение мёртвого кода будет поймано здесь.
|
||||
"""
|
||||
import inspect
|
||||
src = inspect.getsource(_build_claude_env)
|
||||
assert "SSH_AGENT_PID" not in src, (
|
||||
"Регрессия KIN-FIX-013: мёртвый код SSH_AGENT_PID был возвращён в _build_claude_env"
|
||||
)
|
||||
|
||||
def test_build_claude_env_ssh_auth_sock_forwarded_from_environ(self):
|
||||
"""SSH_AUTH_SOCK из os.environ должен пробрасываться в результирующий env."""
|
||||
with patch.dict("os.environ", {"SSH_AUTH_SOCK": "/tmp/ssh-agent.sock"}):
|
||||
env = _build_claude_env()
|
||||
assert env.get("SSH_AUTH_SOCK") == "/tmp/ssh-agent.sock", (
|
||||
"SSH_AUTH_SOCK из os.environ должен наследоваться через copy()"
|
||||
)
|
||||
|
||||
def test_build_claude_env_ssh_auth_sock_fallback_when_absent(self):
|
||||
"""Если SSH_AUTH_SOCK не в os.environ, _build_claude_env пробует macOS-сокет."""
|
||||
env_without_sock = {k: v for k, v in __import__("os").environ.items()
|
||||
if k != "SSH_AUTH_SOCK"}
|
||||
fake_sock = "/private/tmp/com.apple.launchd.FAKE12345/Listeners"
|
||||
with patch.dict("os.environ", env_without_sock, clear=True):
|
||||
with patch("glob.glob", return_value=[fake_sock]):
|
||||
env = _build_claude_env()
|
||||
# Если glob нашёл сокет — он должен быть установлен
|
||||
assert env.get("SSH_AUTH_SOCK") == fake_sock, (
|
||||
"SSH_AUTH_SOCK должен быть установлен из macOS launchd-сокета при его наличии"
|
||||
)
|
||||
|
||||
def test_build_claude_env_ssh_auth_sock_absent_when_no_fallback(self):
|
||||
"""Если SSH_AUTH_SOCK нет и macOS-сокет не найден — ключ не добавляется."""
|
||||
env_without_sock = {k: v for k, v in __import__("os").environ.items()
|
||||
if k != "SSH_AUTH_SOCK"}
|
||||
with patch.dict("os.environ", env_without_sock, clear=True):
|
||||
with patch("glob.glob", return_value=[]):
|
||||
env = _build_claude_env()
|
||||
assert "SSH_AUTH_SOCK" not in env
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# KIN-063: TestCompletionMode — auto_complete + last-step role check
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue