Skip to content

Commit 7ab2e0e

Browse files
committed
test: update setup_source tests for mount-based download-source API
1 parent 2f260de commit 7ab2e0e

2 files changed

Lines changed: 27 additions & 14 deletions

File tree

tests/conftest.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
"""Stub libCRS so patcher can be imported outside Docker."""
2+
import sys
3+
from types import ModuleType, SimpleNamespace
4+
5+
# Create minimal libCRS stub before patcher is imported.
6+
libCRS = ModuleType("libCRS")
7+
libCRS.base = ModuleType("libCRS.base")
8+
libCRS.base.DataType = SimpleNamespace(PATCH="patch", POV="pov", DIFF="diff", SEED="seed", BUG_CANDIDATE="bug_candidate")
9+
libCRS.base.SourceType = SimpleNamespace(REPO="repo", TARGET_SOURCE="target_source")
10+
libCRS.cli = ModuleType("libCRS.cli")
11+
libCRS.cli.main = ModuleType("libCRS.cli.main")
12+
libCRS.cli.main.init_crs_utils = lambda: None
13+
14+
sys.modules["libCRS"] = libCRS
15+
sys.modules["libCRS.base"] = libCRS.base
16+
sys.modules["libCRS.cli"] = libCRS.cli
17+
sys.modules["libCRS.cli.main"] = libCRS.cli.main

tests/test_setup_source.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,19 @@
44
import patcher
55

66

7-
def test_setup_source_uses_repo_hint_instead_of_scanning_nested_git_repos(
7+
def test_setup_source_returns_download_root_when_git_exists(
88
monkeypatch, tmp_path: Path
99
) -> None:
10+
"""With mount-based API, worktree_dir is always download_root (src/)."""
1011
work_dir = tmp_path / "work"
1112
source_dir = work_dir / "src"
12-
project_dir = source_dir / "mock-c"
13-
other_repo_dir = source_dir / "vendored"
14-
(project_dir / ".git").mkdir(parents=True)
15-
(other_repo_dir / ".git").mkdir(parents=True)
13+
(source_dir / ".git").mkdir(parents=True)
1614

1715
monkeypatch.setattr(patcher, "WORK_DIR", work_dir)
1816
monkeypatch.setattr(
1917
patcher,
2018
"crs",
21-
SimpleNamespace(download_source=lambda source_type, dst: project_dir),
19+
SimpleNamespace(download_source=lambda source_type, dst: None),
2220
)
2321

2422
calls: list[tuple[list[str], Path | None]] = []
@@ -31,23 +29,22 @@ def fake_run(cmd, cwd=None, capture_output=None, timeout=None):
3129

3230
resolved = patcher.setup_source()
3331

34-
assert resolved == project_dir
32+
assert resolved == source_dir.resolve()
3533
assert ["git", "init"] not in [cmd for cmd, _ in calls]
3634

3735

38-
def test_setup_source_initializes_git_only_in_returned_project_dir(
36+
def test_setup_source_initializes_git_when_no_dotgit(
3937
monkeypatch, tmp_path: Path
4038
) -> None:
4139
work_dir = tmp_path / "work"
4240
source_dir = work_dir / "src"
43-
project_dir = source_dir / "mock-c"
44-
project_dir.mkdir(parents=True)
41+
source_dir.mkdir(parents=True)
4542

4643
monkeypatch.setattr(patcher, "WORK_DIR", work_dir)
4744
monkeypatch.setattr(
4845
patcher,
4946
"crs",
50-
SimpleNamespace(download_source=lambda source_type, dst: project_dir),
47+
SimpleNamespace(download_source=lambda source_type, dst: None),
5148
)
5249

5350
calls: list[tuple[list[str], Path | None]] = []
@@ -60,6 +57,5 @@ def fake_run(cmd, cwd=None, capture_output=None, timeout=None):
6057

6158
resolved = patcher.setup_source()
6259

63-
assert resolved == project_dir
64-
assert (["git", "init"], project_dir) in calls
65-
assert (["git", "init"], source_dir) not in calls
60+
assert resolved == source_dir.resolve()
61+
assert (["git", "init"], source_dir.resolve()) in calls

0 commit comments

Comments
 (0)