kin: auto-commit after pipeline
This commit is contained in:
parent
04cbbc563b
commit
b6f40a6ace
9 changed files with 1690 additions and 16 deletions
|
|
@ -599,19 +599,19 @@ class TestNonInteractive:
|
|||
|
||||
@patch.dict("os.environ", {"KIN_AGENT_TIMEOUT": ""}, clear=False)
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_noninteractive_uses_600s_timeout(self, mock_run, conn):
|
||||
def test_noninteractive_uses_model_timeout(self, mock_run, conn):
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol", noninteractive=True)
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 600
|
||||
assert call_kwargs.get("timeout") == 1200 # sonnet default
|
||||
|
||||
@patch.dict("os.environ", {"KIN_NONINTERACTIVE": ""})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_interactive_uses_600s_timeout(self, mock_run, conn):
|
||||
def test_interactive_uses_model_timeout(self, mock_run, conn):
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol", noninteractive=False)
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 600
|
||||
assert call_kwargs.get("timeout") == 1200 # sonnet default
|
||||
|
||||
@patch.dict("os.environ", {"KIN_NONINTERACTIVE": ""})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
|
|
@ -630,17 +630,44 @@ class TestNonInteractive:
|
|||
run_agent(conn, "debugger", "VDOL-001", "vdol", noninteractive=False)
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("stdin") == subprocess.DEVNULL
|
||||
assert call_kwargs.get("timeout") == 600
|
||||
assert call_kwargs.get("timeout") == 1200 # sonnet default
|
||||
|
||||
@patch.dict("os.environ", {"KIN_AGENT_TIMEOUT": "900"})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_custom_timeout_via_env_var(self, mock_run, conn):
|
||||
"""KIN_AGENT_TIMEOUT overrides the default 600s timeout."""
|
||||
"""KIN_AGENT_TIMEOUT overrides model-based timeout."""
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol")
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 900
|
||||
|
||||
@patch.dict("os.environ", {"KIN_AGENT_TIMEOUT": ""})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_opus_timeout_1800(self, mock_run, conn):
|
||||
"""Opus model gets 1800s (30 min) timeout."""
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol", model="opus")
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 1800
|
||||
|
||||
@patch.dict("os.environ", {"KIN_AGENT_TIMEOUT": ""})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_haiku_timeout_600(self, mock_run, conn):
|
||||
"""Haiku model gets 600s (10 min) timeout."""
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol", model="haiku")
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 600
|
||||
|
||||
@patch.dict("os.environ", {"KIN_AGENT_TIMEOUT": "999"})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_env_timeout_overrides_model(self, mock_run, conn):
|
||||
"""KIN_AGENT_TIMEOUT env var overrides model-based timeout."""
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol", model="opus")
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 999
|
||||
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_allow_write_adds_skip_permissions(self, mock_run, conn):
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
|
|
@ -1236,12 +1263,12 @@ class TestRegressionKIN056:
|
|||
|
||||
@patch.dict("os.environ", {"KIN_NONINTERACTIVE": "1", "KIN_AGENT_TIMEOUT": ""})
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_web_noninteractive_timeout_is_600(self, mock_run, conn):
|
||||
"""Web путь: KIN_NONINTERACTIVE=1 → timeout = 600s (не 300s)."""
|
||||
def test_web_noninteractive_timeout_uses_model_default(self, mock_run, conn):
|
||||
"""Web путь: KIN_NONINTERACTIVE=1 → timeout = model default (sonnet=1200s)."""
|
||||
mock_run.return_value = _mock_claude_success({"result": "ok"})
|
||||
run_agent(conn, "debugger", "VDOL-001", "vdol")
|
||||
call_kwargs = mock_run.call_args[1]
|
||||
assert call_kwargs.get("timeout") == 600
|
||||
assert call_kwargs.get("timeout") == 1200
|
||||
|
||||
@patch("agents.runner.subprocess.run")
|
||||
def test_web_and_cli_paths_use_same_timeout(self, mock_run, conn):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue