Skip to main content
Glama

content-core

test_config.py4.74 kB
"""Tests for configuration functions and environment variable handling.""" from unittest.mock import patch from content_core.config import ( get_document_engine, get_url_engine, ALLOWED_DOCUMENT_ENGINES, ALLOWED_URL_ENGINES, ) class TestDocumentEngineSelection: """Test document engine selection with environment variables.""" def test_default_document_engine(self): """Test default document engine when no env var is set.""" with patch.dict('os.environ', {}, clear=False): # Remove the env var if it exists if 'CCORE_DOCUMENT_ENGINE' in __import__('os').environ: del __import__('os').environ['CCORE_DOCUMENT_ENGINE'] engine = get_document_engine() assert engine == "auto" # Default from config def test_valid_document_engine_env_var(self): """Test valid document engine environment variable override.""" for engine in ALLOWED_DOCUMENT_ENGINES: with patch.dict('os.environ', {'CCORE_DOCUMENT_ENGINE': engine}): assert get_document_engine() == engine def test_invalid_document_engine_env_var(self): """Test invalid document engine environment variable falls back to default.""" with patch.dict('os.environ', {'CCORE_DOCUMENT_ENGINE': 'invalid_engine'}): engine = get_document_engine() assert engine == "auto" # Should fallback to default def test_case_sensitive_document_engine_env_var(self): """Test that document engine environment variable is case sensitive.""" with patch.dict('os.environ', {'CCORE_DOCUMENT_ENGINE': 'AUTO'}): # uppercase engine = get_document_engine() assert engine == "auto" # Should fallback to default class TestUrlEngineSelection: """Test URL engine selection with environment variables.""" def test_default_url_engine(self): """Test default URL engine when no env var is set.""" with patch.dict('os.environ', {}, clear=False): # Remove the env var if it exists if 'CCORE_URL_ENGINE' in __import__('os').environ: del __import__('os').environ['CCORE_URL_ENGINE'] engine = get_url_engine() assert engine == "auto" # Default from config def test_valid_url_engine_env_var(self): """Test valid URL engine environment variable override.""" for engine in ALLOWED_URL_ENGINES: with patch.dict('os.environ', {'CCORE_URL_ENGINE': engine}): assert get_url_engine() == engine def test_invalid_url_engine_env_var(self): """Test invalid URL engine environment variable falls back to default.""" with patch.dict('os.environ', {'CCORE_URL_ENGINE': 'invalid_engine'}): engine = get_url_engine() assert engine == "auto" # Should fallback to default def test_case_sensitive_url_engine_env_var(self): """Test that URL engine environment variable is case sensitive.""" with patch.dict('os.environ', {'CCORE_URL_ENGINE': 'FIRECRAWL'}): # uppercase engine = get_url_engine() assert engine == "auto" # Should fallback to default class TestEngineConstants: """Test that engine constants contain expected values.""" def test_document_engine_constants(self): """Test document engine allowed values.""" expected = {"auto", "simple", "docling"} assert ALLOWED_DOCUMENT_ENGINES == expected def test_url_engine_constants(self): """Test URL engine allowed values.""" expected = {"auto", "simple", "firecrawl", "jina"} assert ALLOWED_URL_ENGINES == expected class TestEdgeCases: """Test edge cases and error conditions.""" def test_empty_string_document_engine(self): """Test empty string for document engine env var.""" with patch.dict('os.environ', {'CCORE_DOCUMENT_ENGINE': ''}): # Empty string should be falsy and use default engine = get_document_engine() assert engine == "auto" def test_empty_string_url_engine(self): """Test empty string for URL engine env var.""" with patch.dict('os.environ', {'CCORE_URL_ENGINE': ''}): # Empty string should be falsy and use default engine = get_url_engine() assert engine == "auto" def test_whitespace_engine_values(self): """Test whitespace in engine values are treated as invalid.""" with patch.dict('os.environ', {'CCORE_DOCUMENT_ENGINE': ' auto '}): engine = get_document_engine() assert engine == "auto" # Should fallback to default

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/lfnovo/content-core'

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