⚒ sindri

sindri / master / tests / test_forge.py

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