Skip to main content
Glama

mcp-server-tree-sitter

by wrale
MIT License
175
  • Apple
  • Linux
test_cli_arguments.py3 kB
"""Tests for command-line argument handling.""" import subprocess import sys from unittest.mock import patch import pytest from mcp_server_tree_sitter.server import main def test_help_flag_does_not_start_server(): """Test that --help flag prints help and doesn't start the server.""" # Use subprocess to test the actual command result = subprocess.run( [sys.executable, "-m", "mcp_server_tree_sitter", "--help"], capture_output=True, text=True, check=False, ) # Check that it exited successfully assert result.returncode == 0 # Check that the help text was printed assert "MCP Tree-sitter Server" in result.stdout assert "--help" in result.stdout assert "--config" in result.stdout # Server should not have started - no startup messages assert "Starting MCP Tree-sitter Server" not in result.stdout def test_version_flag_exits_without_starting_server(): """Test that --version shows version and exits without starting the server.""" result = subprocess.run( [sys.executable, "-m", "mcp_server_tree_sitter", "--version"], capture_output=True, text=True, check=False, ) # Check that it exited successfully assert result.returncode == 0 # Check that the version was printed assert "mcp-server-tree-sitter version" in result.stdout # Server should not have started assert "Starting MCP Tree-sitter Server" not in result.stdout def test_direct_script_help_flag(): """Test that mcp-server-tree-sitter --help works correctly when called as a script.""" # This uses a mock to avoid actually calling the script binary with ( patch("sys.argv", ["mcp-server-tree-sitter", "--help"]), patch("argparse.ArgumentParser.parse_args") as mock_parse_args, # We don't actually need to use mock_exit in the test, # but we still want to patch sys.exit to prevent actual exits patch("sys.exit"), ): # Mock the ArgumentParser.parse_args to simulate --help behavior # When --help is used, argparse exits with code 0 after printing help mock_parse_args.side_effect = SystemExit(0) # This should catch the SystemExit raised by parse_args with pytest.raises(SystemExit) as excinfo: main() # Verify it's exiting with code 0 (success) assert excinfo.value.code == 0 def test_entry_point_implementation(): """Verify that the entry point properly uses argparse for argument handling.""" import inspect from mcp_server_tree_sitter.server import main # Get the source code of the main function source = inspect.getsource(main) # Check that it's using argparse assert "argparse.ArgumentParser" in source assert "parse_args" in source # Check for proper handling of key flags assert "--help" in source or "automatically" in source # argparse adds --help automatically assert "--version" in source

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/wrale/mcp-server-tree-sitter'

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