Skip to main content
Glama

Command-Line MCP Server

by andresthor
test_session.py4.75 kB
"""Tests for the session management module.""" import time from cmd_line_mcp.session import SessionManager def test_session_init(): """Test initializing the session manager.""" session_manager = SessionManager() assert session_manager.sessions == {} def test_get_session_new(): """Test getting a new session.""" session_manager = SessionManager() session_id = "test-session-id" # Get a new session session = session_manager.get_session(session_id) # Check session structure assert session_id in session_manager.sessions assert "created_at" in session assert "last_active" in session assert "approved_commands" in session assert "approved_command_types" in session assert isinstance(session["approved_commands"], set) assert isinstance(session["approved_command_types"], set) def test_get_session_existing(): """Test getting an existing session.""" session_manager = SessionManager() session_id = "test-session-id" # Get a new session original_session = session_manager.get_session(session_id) original_created_at = original_session["created_at"] original_last_active = original_session["last_active"] # Manually set last_active to an earlier time to ensure a difference # This is more reliable than using time.sleep() which can be inconsistent session_manager.sessions[session_id]["last_active"] = ( original_last_active - 1.0 ) # Get the same session again updated_session = session_manager.get_session(session_id) # Check that created_at remains the same assert updated_session["created_at"] == original_created_at # But last_active should be updated assert ( updated_session["last_active"] > session_manager.sessions[session_id]["last_active"] - 0.5 ) def test_has_command_approval(): """Test checking command approval.""" session_manager = SessionManager() session_id = "test-session-id" command = "mkdir test" # Initially the command should not be approved assert not session_manager.has_command_approval(session_id, command) # Approve the command session = session_manager.get_session(session_id) session["approved_commands"].add(command) # Now it should be approved assert session_manager.has_command_approval(session_id, command) def test_has_command_type_approval(): """Test checking command type approval.""" session_manager = SessionManager() session_id = "test-session-id" command_type = "write" # Initially the command type should not be approved assert not session_manager.has_command_type_approval( session_id, command_type ) # Approve the command type session_manager.approve_command_type(session_id, command_type) # Now it should be approved assert session_manager.has_command_type_approval(session_id, command_type) def test_approve_command(): """Test approving a command.""" session_manager = SessionManager() session_id = "test-session-id" command = "mkdir test" # Approve the command session_manager.approve_command(session_id, command) # Verify it's approved assert session_manager.has_command_approval(session_id, command) # Verify the session exists assert session_id in session_manager.sessions # Verify the command is in the approved_commands set session = session_manager.get_session(session_id) assert command in session["approved_commands"] def test_clean_old_sessions(): """Test cleaning up old sessions.""" session_manager = SessionManager() # Create several sessions with different timestamps now = time.time() # Current session session_manager.sessions["current"] = { "created_at": now, "last_active": now, "approved_commands": set(), "approved_command_types": set(), } # Old session (2 hours old) session_manager.sessions["old"] = { "created_at": now - 7200, "last_active": now - 7200, "approved_commands": set(), "approved_command_types": set(), } # Very old session (1 day old) session_manager.sessions["very_old"] = { "created_at": now - 86400, "last_active": now - 86400, "approved_commands": set(), "approved_command_types": set(), } # Clean sessions older than 1 hour (3600 seconds) session_manager.clean_old_sessions(3600) # Check which sessions were removed assert "current" in session_manager.sessions assert "old" not in session_manager.sessions assert "very_old" not in session_manager.sessions # Check that only old sessions were removed assert len(session_manager.sessions) == 1

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/andresthor/cmd-line-mcp'

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