test: cover manager behavior without live Gitea
This commit is contained in:
60
tests/test_rendering_workspace.py
Normal file
60
tests/test_rendering_workspace.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from agent_gitea.rendering import (
|
||||
parse_review_report,
|
||||
render_implementer_prompt,
|
||||
render_pr_body,
|
||||
)
|
||||
from agent_gitea.workspace import safe_branch_name
|
||||
|
||||
|
||||
def test_branch_name_is_stable_and_safe(db):
|
||||
repo = db.upsert_repository(owner="acme", name="service", clone_url="x", default_branch="main", enabled=True)
|
||||
issue = db.upsert_issue(
|
||||
repo_id=repo.id,
|
||||
issue_number=42,
|
||||
title="Fix API: handle NULL / spaces!",
|
||||
body="",
|
||||
labels=["agent:ready"],
|
||||
state="open",
|
||||
html_url="url",
|
||||
)
|
||||
|
||||
assert safe_branch_name(issue) == "agent/issue-42-fix-api-handle-null-spaces"
|
||||
|
||||
|
||||
def test_prompt_and_pr_body_include_contract_sections(db):
|
||||
repo = db.upsert_repository(owner="acme", name="service", clone_url="x", default_branch="main", enabled=True)
|
||||
issue = db.upsert_issue(
|
||||
repo_id=repo.id,
|
||||
issue_number=7,
|
||||
title="Add thing",
|
||||
body="Please add thing",
|
||||
labels=["agent:ready"],
|
||||
state="open",
|
||||
html_url="url",
|
||||
)
|
||||
|
||||
prompt = render_implementer_prompt(repo, issue, "agent/issue-7-add-thing")
|
||||
body = render_pr_body(issue, "## Summary\nDone")
|
||||
|
||||
assert "AGENT_IMPLEMENTATION_REPORT.md" in prompt
|
||||
assert "Closes #7" in body
|
||||
assert "Human Review Gate" in body
|
||||
|
||||
|
||||
def test_review_report_parsing_extracts_verdict_and_comment():
|
||||
report = """## Verdict
|
||||
REQUEST_CHANGES
|
||||
|
||||
## Summary
|
||||
Needs work
|
||||
|
||||
## Suggested PR Comment
|
||||
Please add tests.
|
||||
"""
|
||||
|
||||
parsed = parse_review_report(report)
|
||||
|
||||
assert parsed.verdict == "REQUEST_CHANGES"
|
||||
assert parsed.suggested_pr_comment == "Please add tests."
|
||||
Reference in New Issue
Block a user