feat: implement NotificationReaderAgent to pre-screen Gitea notifications (#2)
This commit was merged in pull request #2.
This commit is contained in:
@@ -21,7 +21,9 @@ def temp_state_file(tmp_path: Path) -> Path:
|
||||
@patch("core.orchestrator.AgentOrchestrator._get_state_file_path")
|
||||
@patch("core.orchestrator.AgentDispatcher")
|
||||
@patch("core.orchestrator.WorkspaceManager")
|
||||
@patch("core.orchestrator.AgentFactory")
|
||||
async def test_poll_and_dispatch_no_notifications(
|
||||
mock_factory: MagicMock,
|
||||
mock_workspace_class: MagicMock,
|
||||
mock_dispatcher_class: MagicMock,
|
||||
mock_get_path: MagicMock,
|
||||
@@ -44,13 +46,27 @@ async def test_poll_and_dispatch_no_notifications(
|
||||
@patch("core.orchestrator.AgentOrchestrator._get_state_file_path")
|
||||
@patch("core.orchestrator.AgentDispatcher")
|
||||
@patch("core.orchestrator.WorkspaceManager")
|
||||
@patch("core.orchestrator.AgentFactory")
|
||||
async def test_poll_and_dispatch_with_notifications(
|
||||
mock_factory: MagicMock,
|
||||
mock_workspace_class: MagicMock,
|
||||
mock_dispatcher_class: MagicMock,
|
||||
mock_get_path: MagicMock,
|
||||
temp_state_file: Path
|
||||
) -> None:
|
||||
mock_get_path.return_value = temp_state_file
|
||||
|
||||
mock_reader = MagicMock()
|
||||
async def mock_decide_notification(mission: str, inspection_tools: list, notification_tools) -> str:
|
||||
if "issue" in mission or "42" in mission:
|
||||
notification_tools.process_issue("meeks", "repo1", 42, "Needs processing")
|
||||
elif "pull" in mission or "10" in mission:
|
||||
notification_tools.process_pr("meeks", "repo1", 10, "Needs processing")
|
||||
else:
|
||||
notification_tools.skip_notification("Unrelated")
|
||||
return "Decided"
|
||||
mock_reader.decide_notification = AsyncMock(side_effect=mock_decide_notification)
|
||||
mock_factory.create_notification_reader_agent.return_value = mock_reader
|
||||
mock_client = MagicMock(spec=GiteaClient)
|
||||
mock_tools = MagicMock(spec=GiteaTools)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user