import pytest from unittest.mock import MagicMock from aider_gitea.gitea_client import GiteaClient class TestGiteaClient: def setup_method(self): """Set up test fixtures.""" self.gitea_url = "https://gitea.example.com" self.token = "test_token" self.client = GiteaClient(self.gitea_url, self.token) self.owner = "test_owner" self.repo = "test_repo" def test_get_pull_request_comments(self, monkeypatch): """Test retrieving comments for a pull request.""" pull_number = 123 expected_comments = [ { "id": 1, "body": "This is a test comment", "user": {"login": "test_user"}, "created_at": "2023-01-01T00:00:00Z", }, { "id": 2, "body": "Another test comment", "user": {"login": "another_user"}, "created_at": "2023-01-02T00:00:00Z", }, ] # Create a mock response mock_response = MagicMock() mock_response.json.return_value = expected_comments mock_response.raise_for_status = MagicMock() # Mock the session.get method mock_get = MagicMock(return_value=mock_response) monkeypatch.setattr(self.client.session, "get", mock_get) # Call the method comments = self.client.get_pull_request_comments(self.owner, self.repo, pull_number) # Verify the result assert comments == expected_comments # Verify the correct URL was called expected_url = f"{self.gitea_url}/repos/{self.owner}/{self.repo}/pulls/{pull_number}/comments" mock_get.assert_called_once_with(expected_url)