Skip to main content
Glama

llm-context

by cyberchitta
test_outliner.py2.76 kB
import pytest from llm_context.excerpters.code_outliner import CodeOutliner from llm_context.excerpters.parser import ASTFactory, Source from llm_context.excerpters.tagger import ASTBasedTagger @pytest.fixture def tagger(): workspace_path = "/fake/workspace/path" ast_factory = ASTFactory.create() return ASTBasedTagger.create(workspace_path, ast_factory) @pytest.fixture def sample_source(): code = """ class TestClass: def test_method(self): pass def test_function(): pass """ return Source(rel_path="test.py", content=code) def test_code_outliner_integration(sample_source, tagger): """Test the complete code outlining functionality.""" excerpter = CodeOutliner({"tagger": tagger}) result = excerpter.excerpt([sample_source]) assert len(result.excerpts) == 1 assert result.excerpts[0].rel_path == "test.py" assert "class TestClass" in result.excerpts[0].content assert result.excerpts[0].metadata["processor_type"] == "code-outliner" assert "sample_definitions" in result.metadata assert isinstance(result.metadata["sample_definitions"], list) def test_code_outliner_empty_sources(tagger): """Test handling of empty source list.""" excerpter = CodeOutliner({"tagger": tagger}) result = excerpter.excerpt([]) assert len(result.excerpts) == 0 assert result.metadata["sample_definitions"] == [] def test_code_outliner_unsupported_language(tagger): """Test handling of unsupported file types.""" source = Source("test.txt", "some text content") excerpter = CodeOutliner({"tagger": tagger}) result = excerpter.excerpt([source]) assert len(result.excerpts) == 0 assert result.metadata["sample_definitions"] == [] def test_code_outliner_multiple_sources(tagger): """Test processing multiple source files.""" sources = [ Source("file1.py", "def func1():\n pass"), Source("file2.py", "class Class2:\n def method2(self):\n pass"), Source("file3.txt", "unsupported file"), ] excerpter = CodeOutliner({"tagger": tagger}) result = excerpter.excerpt(sources) assert len(result.excerpts) == 2 paths = {excerpt.rel_path for excerpt in result.excerpts} assert paths == {"file1.py", "file2.py"} for excerpt in result.excerpts: assert excerpt.metadata["processor_type"] == "code-outliner" def test_code_outliner_no_definitions(tagger): """Test handling of code with no extractable definitions.""" source = Source("empty.py", "# just a comment\nprint('hello')") excerpter = CodeOutliner({"tagger": tagger}) result = excerpter.excerpt([source]) assert isinstance(result.excerpts, list) assert result.metadata["sample_definitions"] == []

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/cyberchitta/llm-context.py'

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