import pytest from unittest.mock import AsyncMock, patch, MagicMock def test_gitea_comment_success(): mock_client = MagicMock() mock_client.create_issue_comment = AsyncMock( return_value={"id": 42, "body": "test comment"} ) with patch( "agent.tools.gitea_comment.get_gitea_client", return_value=mock_client ), patch( "agent.tools.gitea_comment._get_repo_info", return_value=("quant", "galaxis-po"), ): from agent.tools.gitea_comment import gitea_comment result = gitea_comment(message="test comment", issue_number=1) assert result["success"] is True assert result["comment_id"] == 42 def test_gitea_comment_missing_issue_number(): from agent.tools.gitea_comment import gitea_comment result = gitea_comment(message="test", issue_number=0) assert result["success"] is False assert "issue_number" in result["error"] def test_gitea_comment_api_error(): import httpx mock_client = MagicMock() mock_client.create_issue_comment = AsyncMock( side_effect=httpx.HTTPStatusError( "404", request=MagicMock(), response=MagicMock(status_code=404) ) ) with patch( "agent.tools.gitea_comment.get_gitea_client", return_value=mock_client ), patch( "agent.tools.gitea_comment._get_repo_info", return_value=("quant", "galaxis-po"), ): from agent.tools.gitea_comment import gitea_comment result = gitea_comment(message="test", issue_number=999) assert result["success"] is False assert "error" in result