Enforce authenticated user verification on startup in main.py

This commit is contained in:
meeks
2026-07-16 12:40:54 +02:00
parent f08c7b64c1
commit a6e6963c33
2 changed files with 67 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
from unittest.mock import MagicMock, AsyncMock, patch
import pytest
from main import main
pytestmark = pytest.mark.anyio
@patch("main.load_dotenv")
@patch("main.os.chdir")
@patch("main.GiteaClient")
@patch("main.GiteaTools")
@patch("main.AgentOrchestrator")
async def test_main_startup_success(
mock_orchestrator_class: MagicMock,
mock_tools_class: MagicMock,
mock_client_class: MagicMock,
mock_chdir: MagicMock,
mock_load_dotenv: MagicMock
) -> None:
mock_client = MagicMock()
mock_client_class.return_value = mock_client
mock_user = MagicMock()
mock_user.login = "agent-test"
mock_client.get_authenticated_user.return_value = mock_user
mock_orchestrator = MagicMock()
mock_orchestrator.poll_and_dispatch = AsyncMock(side_effect=KeyboardInterrupt())
mock_orchestrator_class.return_value = mock_orchestrator
# Run main; it should exit gracefully on KeyboardInterrupt
await main()
mock_client.get_authenticated_user.assert_called_once()
mock_orchestrator.poll_and_dispatch.assert_called_once()
@patch("main.load_dotenv")
@patch("main.os.chdir")
@patch("main.GiteaClient")
@patch("main.GiteaTools")
@patch("main.AgentOrchestrator")
async def test_main_startup_fails_no_authenticated_user(
mock_orchestrator_class: MagicMock,
mock_tools_class: MagicMock,
mock_client_class: MagicMock,
mock_chdir: MagicMock,
mock_load_dotenv: MagicMock
) -> None:
mock_client = MagicMock()
mock_client_class.return_value = mock_client
# Simulate no user returned
mock_client.get_authenticated_user.return_value = None
with pytest.raises(SystemExit) as exc_info:
await main()
assert exc_info.value.code == 1
mock_orchestrator_class.assert_not_called()