sindri / master / tests / test_forge.py
from unittest.mock import MagicMock
from sindri.forge import SindriContext
def test_update_issue_sets_labels(db, tmp_path):
db.create_repo("myrepo", "", "main")
db.create_issue("myrepo", "Fix crash", "on startup")
ctx = SindriContext(db=db, repo="myrepo", git_manager=MagicMock())
ctx.update_issue(1, labels=["bug", "M"], priority=2)
issue = db.get_issue("myrepo", 1)
assert issue.labels == ["bug", "M"]
assert issue.priority == 2
def test_open_pr_creates_record(db, tmp_path):
db.create_repo("myrepo", "", "main")
db.create_issue("myrepo", "Fix crash", "")
ctx = SindriContext(db=db, repo="myrepo", git_manager=MagicMock())
pr = ctx.open_pr(title="Fix crash", source_branch="agent/fix-1", linked_issue=1)
assert pr.number == 1
assert pr.source_branch == "agent/fix-1"
assert pr.linked_issue == 1
def test_post_comment_appends_to_pr(db, tmp_path):
db.create_repo("myrepo", "", "main")
db.create_pr("myrepo", "Fix crash", "agent/fix-1", "main")
ctx = SindriContext(db=db, repo="myrepo", git_manager=MagicMock())
ctx.post_comment(pr_id=1, body="LGTM, no blocking issues")
updated_pr = db.get_pr("myrepo", 1)
assert "LGTM" in updated_pr.body