Skip to main content
Glama

Voice Mode

by mbailey
test_changelog_resource.py•2.49 kB
"""Tests for the changelog resource.""" import pytest from unittest.mock import patch, mock_open from pathlib import Path from voice_mode.resources.changelog import changelog_resource def test_changelog_resource_finds_file_from_source(): """Test that the resource finds CHANGELOG.md when running from source.""" mock_content = """# Changelog ## [2.0.0] - 2025-01-01 ### Added - New feature ## [1.0.0] - 2024-12-01 ### Initial Release - First version """ with patch("pathlib.Path.exists") as mock_exists: with patch("pathlib.Path.read_text") as mock_read: # First path (from source) exists mock_exists.side_effect = [True, False, False] mock_read.return_value = mock_content result = changelog_resource.fn() assert result == mock_content assert mock_exists.call_count == 1 def test_changelog_resource_fallback_paths(): """Test that the resource tries multiple paths.""" mock_content = "# Changelog content" with patch("pathlib.Path.exists") as mock_exists: with patch("pathlib.Path.read_text") as mock_read: # First two paths don't exist, third one does mock_exists.side_effect = [False, False, True] mock_read.return_value = mock_content result = changelog_resource.fn() assert result == mock_content assert mock_exists.call_count == 3 def test_changelog_resource_file_not_found(): """Test that the resource returns helpful message when file not found.""" with patch("pathlib.Path.exists") as mock_exists: # No paths exist mock_exists.return_value = False result = changelog_resource.fn() assert "CHANGELOG.md not found in package" in result assert "https://github.com/mbailey/voicemode" in result def test_changelog_resource_read_error(): """Test that the resource handles read errors gracefully.""" with patch("pathlib.Path.exists") as mock_exists: with patch("pathlib.Path.read_text") as mock_read: # First path exists but read fails mock_exists.side_effect = [True, False, False] mock_read.side_effect = PermissionError("Access denied") result = changelog_resource.fn() assert "Error reading CHANGELOG.md" in result assert "Access denied" in result

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/mbailey/voicemode'

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