feat(drive): add create_drive_folder tool and unit test
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
0
tests/gdrive/__init__.py
Normal file
0
tests/gdrive/__init__.py
Normal file
42
tests/gdrive/test_drive_tools.py
Normal file
42
tests/gdrive/test_drive_tools.py
Normal file
@@ -0,0 +1,42 @@
|
||||
"""
|
||||
Unit tests for Google Drive MCP tools.
|
||||
|
||||
Tests create_drive_folder with mocked API responses.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from unittest.mock import Mock, AsyncMock, patch
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_create_drive_folder():
|
||||
"""Test create_drive_folder returns success message with folder id, name, and link."""
|
||||
from gdrive.drive_tools import _create_drive_folder_impl
|
||||
|
||||
mock_service = Mock()
|
||||
mock_response = {
|
||||
"id": "folder123",
|
||||
"name": "My Folder",
|
||||
"webViewLink": "https://drive.google.com/drive/folders/folder123",
|
||||
}
|
||||
mock_request = Mock()
|
||||
mock_request.execute.return_value = mock_response
|
||||
mock_service.files.return_value.create.return_value = mock_request
|
||||
|
||||
with patch("gdrive.drive_tools.resolve_folder_id", new_callable=AsyncMock, return_value="root"):
|
||||
result = await _create_drive_folder_impl(
|
||||
service=mock_service,
|
||||
user_google_email="user@example.com",
|
||||
folder_name="My Folder",
|
||||
parent_folder_id="root",
|
||||
)
|
||||
|
||||
assert "Successfully created folder" in result
|
||||
assert "My Folder" in result
|
||||
assert "folder123" in result
|
||||
assert "user@example.com" in result
|
||||
assert "https://drive.google.com/drive/folders/folder123" in result
|
||||
Reference in New Issue
Block a user