Skip to main content
Glama

Google Chat MCP Sever (Extendable to Teams,Slack.)

test_attachments.py3.29 kB
from unittest.mock import patch, MagicMock, mock_open import pytest from src.providers.google_chat.api.attachments import upload_attachment, send_file_message @pytest.mark.asyncio class TestAttachmentUtils: @patch("src.providers.google_chat.api.attachments.get_credentials", return_value=MagicMock()) @patch("src.providers.google_chat.api.attachments.Path.exists", return_value=True) @patch("src.providers.google_chat.api.attachments.MediaFileUpload") @patch("src.providers.google_chat.api.attachments.build") async def test_upload_attachment_success(self, mock_build, mock_media, mock_exists, mock_get_creds): mock_service = MagicMock() mock_build.return_value = mock_service # Simulate media().upload().execute() returning attachment data mock_service.media.return_value.upload.return_value.execute.return_value = {"file": "uploaded"} # Simulate spaces().messages().create().execute() mock_service.spaces.return_value.messages.return_value.create.return_value.execute.return_value = {"message": "sent"} result = await upload_attachment("spaces/test", "somefile.txt", "Here is a file") assert "message" in result mock_media.assert_called_once() @patch("src.providers.google_chat.api.attachments.get_credentials", return_value=MagicMock()) @patch("src.providers.google_chat.api.attachments.Path.exists", return_value=False) async def test_upload_attachment_file_not_found(self, mock_exists, mock_get_creds): with pytest.raises(Exception, match="File not found"): await upload_attachment("spaces/test", "missing.txt") @patch("src.providers.google_chat.api.attachments.get_credentials", return_value=None) async def test_upload_attachment_no_creds(self, mock_get_creds): with pytest.raises(Exception, match="No valid credentials found"): await upload_attachment("spaces/test", "somefile.txt") @patch("src.providers.google_chat.api.attachments.get_credentials", return_value=MagicMock()) @patch("src.providers.google_chat.api.attachments.Path.exists", return_value=True) @patch("builtins.open", new_callable=mock_open, read_data="Sample content") @patch("src.providers.google_chat.api.attachments.create_message", return_value={"message": "mocked"}) async def test_send_file_message_success(self, mock_create, mock_open_, mock_exists, mock_get_creds): result = await send_file_message("spaces/test", "sample.txt", "Here it is") assert "message" in result mock_create.assert_called_once() @patch("src.providers.google_chat.api.attachments.get_credentials", return_value=None) async def test_send_file_message_no_creds(self, mock_get_creds): with pytest.raises(Exception, match="No valid credentials found"): await send_file_message("spaces/test", "sample.txt") @patch("src.providers.google_chat.api.attachments.get_credentials", return_value=MagicMock()) @patch("src.providers.google_chat.api.attachments.Path.exists", return_value=False) async def test_send_file_message_file_missing(self, mock_exists, mock_get_creds): with pytest.raises(Exception, match="File not found"): await send_file_message("spaces/test", "sample.txt")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/siva010928/multi-chat-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server