⚒ sindri

sindri / master / tests / test_workflows.py

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