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}/api/v1/repos/{self.owner}/{self.repo}/pulls/{pull_number}/comments' mock_get.assert_called_once_with(expected_url)