blob: 0a7ec7e141f636dd565881dc779a8b967f679e1c [file]
import asyncio
import json
import unittest
from unittest.mock import patch, AsyncMock
from gerrit_mcp_server import main
BASE_URL = "https://gerrit-review.googlesource.com"
class TestDeleteDraftComment(unittest.TestCase):
@patch("gerrit_mcp_server.main.run_curl", new_callable=AsyncMock)
def test_delete_single_draft_success(self, mock_run_curl):
async def run_test():
mock_run_curl.return_value = ""
result = await main.delete_draft_comment(
change_id="123",
draft_id="draft-abc",
gerrit_base_url=BASE_URL,
)
self.assertIn("Deleted draft comment draft-abc on CL 123", result[0]["text"])
mock_run_curl.assert_called_once()
args, _ = mock_run_curl.call_args
curl_args = args[0]
self.assertIn("-X", curl_args)
self.assertIn("DELETE", curl_args)
self.assertIn(
f"{BASE_URL}/changes/123/revisions/current/drafts/draft-abc",
curl_args,
)
asyncio.run(run_test())
@patch("gerrit_mcp_server.main.run_curl", new_callable=AsyncMock)
def test_delete_single_draft_exception(self, mock_run_curl):
async def run_test():
mock_run_curl.side_effect = Exception("Not found")
with self.assertRaises(Exception):
await main.delete_draft_comment(
change_id="123",
draft_id="draft-abc",
gerrit_base_url=BASE_URL,
)
asyncio.run(run_test())
if __name__ == "__main__":
unittest.main()