sindri / master / tests / test_workflows.py
from unittest.mock import patch, MagicMock
from sindri.workflows import get_workflow, register_workflow
def test_get_builtin_workflow():
fn = get_workflow("triage")
assert callable(fn)
def test_register_custom_workflow():
def my_fn(ctx, event): pass
register_workflow("my_custom", my_fn)
assert get_workflow("my_custom") is my_fn
def test_triage_updates_issue(db):
from sindri.workflows.triage import run
from sindri.forge import SindriContext
db.create_repo("myrepo", "", "main")
db.create_issue("myrepo", "TypeError on line 42", "Crashes when input is None")
ctx = SindriContext(db=db, repo="myrepo", git_manager=MagicMock())
event = {"issue_id": 1, "title": "TypeError on line 42", "body": "Crashes when input is None"}
with patch("sindri.workflows.triage._run_agent") as mock_agent:
mock_agent.return_value = '{"labels": ["bug", "S"], "priority": 2}'
run(ctx, event)
issue = db.get_issue("myrepo", 1)
assert "bug" in issue.labels
assert issue.priority == 2