Skip to main content
Glama

Voice Mode

by mbailey
test_selective_tool_loading.py•5.9 kB
"""Tests for selective tool loading functionality.""" import os import sys import subprocess import importlib import pytest from unittest.mock import patch, MagicMock def test_selective_loading_converse_only(): """Test that VOICEMODE_TOOLS=converse only loads the converse tool.""" # Run in subprocess to ensure clean import state result = subprocess.run( [sys.executable, "-c", """ import os import sys os.environ['VOICEMODE_TOOLS'] = 'converse' # Import after setting env var from voice_mode import tools # Check which tool modules are loaded loaded_modules = [m for m in sys.modules.keys() if 'voice_mode.tools' in m] print('LOADED:', sorted(loaded_modules)) # Verify statistics module is NOT loaded assert 'voice_mode.tools.statistics' not in sys.modules assert 'voice_mode.tools.converse' in sys.modules print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout assert "voice_mode.tools.converse" in result.stdout assert "voice_mode.tools.statistics" not in result.stdout.replace("LOADED:", "") def test_selective_loading_multiple_tools(): """Test that VOICEMODE_TOOLS_ENABLED can load multiple specified tools.""" result = subprocess.run( [sys.executable, "-c", """ import os import sys os.environ['VOICEMODE_TOOLS_ENABLED'] = 'converse,statistics' from voice_mode import tools loaded_modules = [m for m in sys.modules.keys() if 'voice_mode.tools' in m] print('LOADED:', sorted(loaded_modules)) assert 'voice_mode.tools.converse' in sys.modules assert 'voice_mode.tools.statistics' in sys.modules print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout def test_all_tools_loaded_by_default(): """Test that only essential tools (converse, service) are loaded by default.""" result = subprocess.run( [sys.executable, "-c", """ import os import sys # Ensure no filter variables are set os.environ.pop('VOICEMODE_TOOLS', None) os.environ.pop('VOICEMODE_TOOLS_ENABLED', None) os.environ.pop('VOICEMODE_TOOLS_DISABLED', None) from voice_mode import tools loaded_modules = [m for m in sys.modules.keys() if 'voice_mode.tools' in m] print('LOADED:', sorted(loaded_modules)) # Should only load essential tools by default (converse, service) tool_count = len([m for m in loaded_modules if m.startswith('voice_mode.tools.')]) print(f'Tool count: {tool_count}') assert tool_count == 2, f"Expected 2 tools (converse, service), got {tool_count}" assert 'voice_mode.tools.converse' in sys.modules assert 'voice_mode.tools.service' in sys.modules print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout def test_invalid_tool_warning(): """Test that specifying an invalid tool name logs a warning.""" result = subprocess.run( [sys.executable, "-c", """ import os import sys import logging # Set up logging to capture warnings logging.basicConfig(level=logging.WARNING) os.environ['VOICEMODE_TOOLS_ENABLED'] = 'converse,nonexistent_tool' from voice_mode import tools # The valid tool should still load assert 'voice_mode.tools.converse' in sys.modules print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout # Check for warning about nonexistent tool assert "not found" in result.stderr.lower() or "WARNING" in result.stderr def test_statistics_tracking_without_loading_tools(): """Test that statistics tracking can be imported without loading statistics tools.""" result = subprocess.run( [sys.executable, "-c", """ import os import sys os.environ['VOICEMODE_TOOLS'] = 'converse' # Import the tracking function from voice_mode.statistics_tracking import track_voice_interaction # Verify statistics tools module is not loaded assert 'voice_mode.tools.statistics' not in sys.modules # Verify the function exists and is callable assert callable(track_voice_interaction) print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout @pytest.mark.skip(reason="Flaky test - passes individually but fails in full suite due to environment pollution from other tests") def test_empty_voicemode_tools(): """Test that empty VOICEMODE_TOOLS_ENABLED loads all tools (same as not set).""" result = subprocess.run( [sys.executable, "-c", """ import os import sys os.environ['VOICEMODE_TOOLS_ENABLED'] = '' from voice_mode import tools loaded_modules = [m for m in sys.modules.keys() if 'voice_mode.tools' in m] tool_count = len([m for m in loaded_modules if m.startswith('voice_mode.tools.')]) print(f'Tool count with empty string: {tool_count}') assert tool_count > 5, f"Expected more than 5 tools, got {tool_count}" print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout def test_whitespace_handling_in_tool_list(): """Test that whitespace in tool list is handled correctly.""" result = subprocess.run( [sys.executable, "-c", """ import os import sys os.environ['VOICEMODE_TOOLS_ENABLED'] = ' converse , statistics ' from voice_mode import tools assert 'voice_mode.tools.converse' in sys.modules assert 'voice_mode.tools.statistics' in sys.modules print('SUCCESS') """], capture_output=True, text=True ) assert result.returncode == 0, f"Failed: {result.stderr}" assert "SUCCESS" in result.stdout

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