Skip to main content
Glama
by V2-Digital
test_summarizer.py•3.04 kB
"""Unit tests for the summarizer module.""" from unittest.mock import MagicMock, patch from src.v2_ai_mcp.summarizer import summarize @patch("src.v2_ai_mcp.summarizer.OpenAI") def test_summarize_success(mock_openai): """Test successful text summarization.""" # Mock the OpenAI client and response mock_client = MagicMock() mock_openai.return_value = mock_client mock_response = MagicMock() mock_response.choices = [MagicMock()] mock_response.choices[0].message.content = "This is a test summary." mock_client.chat.completions.create.return_value = mock_response # Test the summarize function result = summarize("This is a long blog post content that needs to be summarized.") assert result == "This is a test summary." mock_client.chat.completions.create.assert_called_once() # Verify the API call parameters call_args = mock_client.chat.completions.create.call_args assert call_args[1]["model"] == "gpt-4" assert call_args[1]["max_tokens"] == 500 assert call_args[1]["temperature"] == 0.3 assert len(call_args[1]["messages"]) == 2 assert call_args[1]["messages"][0]["role"] == "system" assert call_args[1]["messages"][1]["role"] == "user" assert "summarize this blog post" in call_args[1]["messages"][1]["content"].lower() @patch("src.v2_ai_mcp.summarizer.OpenAI") def test_summarize_api_error(mock_openai): """Test handling of OpenAI API errors.""" mock_client = MagicMock() mock_openai.return_value = mock_client # Mock an API exception mock_client.chat.completions.create.side_effect = Exception("API Error") result = summarize("Test content") assert result == "Error generating summary: API Error" @patch("src.v2_ai_mcp.summarizer.os.getenv") @patch("src.v2_ai_mcp.summarizer.OpenAI") def test_summarize_with_api_key(mock_openai, mock_getenv): """Test that API key is properly retrieved from environment.""" mock_getenv.return_value = "test-api-key" mock_client = MagicMock() mock_openai.return_value = mock_client mock_response = MagicMock() mock_response.choices = [MagicMock()] mock_response.choices[0].message.content = "Summary result." mock_client.chat.completions.create.return_value = mock_response result = summarize("Test content") mock_getenv.assert_called_once_with("OPENAI_API_KEY") mock_openai.assert_called_once_with(api_key="test-api-key") assert result == "Summary result." @patch("src.v2_ai_mcp.summarizer.OpenAI") def test_summarize_empty_content(mock_openai): """Test summarizing empty content.""" mock_client = MagicMock() mock_openai.return_value = mock_client mock_response = MagicMock() mock_response.choices = [MagicMock()] mock_response.choices[0].message.content = "No content to summarize." mock_client.chat.completions.create.return_value = mock_response result = summarize("") assert result == "No content to summarize." mock_client.chat.completions.create.assert_called_once()

Latest Blog Posts

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/V2-Digital/v2-ai-mcp'

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