kin: auto-commit after pipeline

This commit is contained in:
Gros Frumos 2026-03-18 01:00:15 +02:00
parent 2bc0146189
commit 8b409fd7db
2 changed files with 39 additions and 0 deletions

View file

@ -11,6 +11,18 @@ def _set_kin_secret_key(monkeypatch):
monkeypatch.setenv("KIN_SECRET_KEY", Fernet.generate_key().decode())
@pytest.fixture(autouse=True)
def _clear_kin_noninteractive(monkeypatch):
"""Ensure KIN_NONINTERACTIVE is not inherited from parent process.
Tests that need it explicitly set it via @patch.dict("os.environ", {"KIN_NONINTERACTIVE": "1"}).
Without this fixture, KIN_NONINTERACTIVE=1 (set by web API when launching agent subprocesses)
leaks into the test environment and causes _run_claude to add --dangerously-skip-permissions
even when noninteractive=False.
"""
monkeypatch.delenv("KIN_NONINTERACTIVE", raising=False)
@pytest.fixture(autouse=True)
def _mock_check_claude_auth():
"""Авто-мок agents.runner.check_claude_auth для всех тестов.

View file

@ -839,6 +839,33 @@ class TestNonInteractive:
cmd = mock_run.call_args[0][0]
assert "--dangerously-skip-permissions" not in cmd
# --- KIN-FIX-023: guard использует is_noninteractive, а не raw noninteractive ---
@patch("agents.runner.subprocess.run")
def test_noninteractive_param_adds_dangerously_skip_permissions(self, mock_run, conn):
"""noninteractive=True → --dangerously-skip-permissions добавляется в команду."""
mock_run.return_value = _mock_claude_success({"result": "ok"})
run_agent(conn, "debugger", "VDOL-001", "vdol", noninteractive=True)
cmd = mock_run.call_args[0][0]
assert "--dangerously-skip-permissions" in cmd
@patch.dict("os.environ", {"KIN_NONINTERACTIVE": "1"})
@patch("agents.runner.subprocess.run")
def test_kin_noninteractive_env_adds_dangerously_skip_permissions(self, mock_run, conn):
"""KIN_NONINTERACTIVE=1 → --dangerously-skip-permissions добавляется в команду."""
mock_run.return_value = _mock_claude_success({"result": "ok"})
run_agent(conn, "debugger", "VDOL-001", "vdol", noninteractive=False)
cmd = mock_run.call_args[0][0]
assert "--dangerously-skip-permissions" in cmd
@patch("agents.runner.subprocess.run")
def test_noninteractive_false_no_env_no_skip_permissions(self, mock_run, conn):
"""noninteractive=False и нет KIN_NONINTERACTIVE → без --dangerously-skip-permissions."""
mock_run.return_value = _mock_claude_success({"result": "ok"})
run_agent(conn, "debugger", "VDOL-001", "vdol", noninteractive=False, allow_write=False)
cmd = mock_run.call_args[0][0]
assert "--dangerously-skip-permissions" not in cmd
# ---------------------------------------------------------------------------
# run_audit