feat: switch to opencode
This commit is contained in:
+13
-14
@@ -28,15 +28,14 @@ def serious_report() -> ReviewReport:
|
||||
)
|
||||
|
||||
|
||||
class FakeCodex:
|
||||
class FakeOpenCode:
|
||||
def __init__(self, reports: list[ReviewReport]) -> None:
|
||||
self.reports = iter(reports)
|
||||
self.reviews = 0
|
||||
self.revisions = 0
|
||||
|
||||
async def start(self, **_kwargs):
|
||||
self.reviews += 1
|
||||
return "reviewer", next(self.reports)
|
||||
async def create_session(self, *_args):
|
||||
return "reviewer"
|
||||
|
||||
async def resume(self, **kwargs):
|
||||
if kwargs["result_type"] is ReviewReport:
|
||||
@@ -60,15 +59,15 @@ class FakePrompts:
|
||||
|
||||
|
||||
def objects(rounds: int, reports: list[ReviewReport]):
|
||||
codex = FakeCodex(reports)
|
||||
opencode = FakeOpenCode(reports)
|
||||
settings = SimpleNamespace(
|
||||
implement_review_rounds=rounds,
|
||||
implement_model="model",
|
||||
implement_reasoning="high",
|
||||
implement_variant="high",
|
||||
)
|
||||
deps = SimpleNamespace(
|
||||
settings=settings,
|
||||
codex=codex,
|
||||
opencode=opencode,
|
||||
storage=FakeStorage(),
|
||||
prompts=FakePrompts(),
|
||||
development=SimpleNamespace(description="python"),
|
||||
@@ -95,12 +94,12 @@ def objects(rounds: int, reports: list[ReviewReport]):
|
||||
message="",
|
||||
comment_id=1,
|
||||
)
|
||||
return CodeReviewLoop(deps), codex, workflow, job # type: ignore[arg-type]
|
||||
return CodeReviewLoop(deps), opencode, workflow, job # type: ignore[arg-type]
|
||||
|
||||
|
||||
async def test_stops_after_clean_second_review() -> None:
|
||||
clean = ReviewReport(summary="Ready", findings=[])
|
||||
loop, codex, workflow, job = objects(4, [serious_report(), clean])
|
||||
loop, opencode, workflow, job = objects(4, [serious_report(), clean])
|
||||
_, report = await loop.run(
|
||||
job,
|
||||
workflow,
|
||||
@@ -109,12 +108,12 @@ async def test_stops_after_clean_second_review() -> None:
|
||||
AgentResult(summary_markdown="initial", tests=[]),
|
||||
)
|
||||
assert not report.has_serious_findings
|
||||
assert codex.reviews == 2
|
||||
assert codex.revisions == 1
|
||||
assert opencode.reviews == 2
|
||||
assert opencode.revisions == 1
|
||||
|
||||
|
||||
async def test_does_not_make_unreviewed_final_revision() -> None:
|
||||
loop, codex, workflow, job = objects(
|
||||
loop, opencode, workflow, job = objects(
|
||||
3, [serious_report(), serious_report(), serious_report()]
|
||||
)
|
||||
_, report = await loop.run(
|
||||
@@ -125,5 +124,5 @@ async def test_does_not_make_unreviewed_final_revision() -> None:
|
||||
AgentResult(summary_markdown="initial", tests=[]),
|
||||
)
|
||||
assert report.has_serious_findings
|
||||
assert codex.reviews == 3
|
||||
assert codex.revisions == 2
|
||||
assert opencode.reviews == 3
|
||||
assert opencode.revisions == 2
|
||||
|
||||
Reference in New Issue
Block a user