Salvage of PR #1246 by ChatGPT (teknium1 session), resolved against current main which already includes #1239. Changes: - Add minisweagent_path.py: worktree-aware helper that finds mini-swe-agent/src from either the current checkout or the main checkout behind a git worktree - Use the helper in tools/terminal_tool.py and mini_swe_runner.py instead of naive path-relative lookup that fails in worktrees - Clean up check_terminal_requirements(): - local: return True (no minisweagent dep, per #1239) - singularity/ssh: remove unnecessary minisweagent imports - docker/modal: use importlib.util.find_spec with clear error - Add regression tests for worktree path discovery and tool resolution
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""Tests for minisweagent_path.py."""
|
|
|
|
from pathlib import Path
|
|
|
|
from minisweagent_path import discover_minisweagent_src
|
|
|
|
|
|
def test_discover_minisweagent_src_in_current_checkout(tmp_path):
|
|
repo = tmp_path / "repo"
|
|
src = repo / "mini-swe-agent" / "src"
|
|
src.mkdir(parents=True)
|
|
|
|
assert discover_minisweagent_src(repo) == src.resolve()
|
|
|
|
|
|
def test_discover_minisweagent_src_falls_back_from_worktree_to_main_checkout(tmp_path):
|
|
main_repo = tmp_path / "main-repo"
|
|
(main_repo / ".git" / "worktrees" / "wt1").mkdir(parents=True)
|
|
main_src = main_repo / "mini-swe-agent" / "src"
|
|
main_src.mkdir(parents=True)
|
|
|
|
worktree = tmp_path / "worktree"
|
|
worktree.mkdir()
|
|
(worktree / ".git").write_text(f"gitdir: {main_repo / '.git' / 'worktrees' / 'wt1'}\n", encoding="utf-8")
|
|
(worktree / "mini-swe-agent").mkdir() # empty placeholder, no src/
|
|
|
|
assert discover_minisweagent_src(worktree) == main_src.resolve()
|
|
|
|
|
|
def test_discover_minisweagent_src_returns_none_when_missing(tmp_path):
|
|
repo = tmp_path / "repo"
|
|
repo.mkdir()
|
|
|
|
assert discover_minisweagent_src(repo) is None
|