Skip to main content
Glama

MemOS-MCP

by qinshu1109
Apache 2.0
3
  • Linux
  • Apple
conftest.py8.32 kB
""" pytest配置文件 - 设置测试环境和Mock依赖 基于专家指导,在测试环境中模拟重型依赖,避免级联导入问题 """ import sys import types import os def setup_mock_dependencies(): """设置Mock依赖,避免重型依赖导入""" # Mock transformers模块 if "transformers" not in sys.modules: transformers_mock = types.ModuleType("transformers") class MockAutoTokenizer: @staticmethod def from_pretrained(*args, **kwargs): return MockTokenizer() class MockTokenizer: def encode(self, text): return [1, 2, 3] def decode(self, tokens): return "mock decoded text" class MockAutoModelForCausalLM: @staticmethod def from_pretrained(*args, **kwargs): return MockModel() class MockModel: def generate(self, *args, **kwargs): return [[1, 2, 3]] class MockLogitsProcessorList: def __init__(self, *args, **kwargs): pass class MockStoppingCriteriaList: def __init__(self, *args, **kwargs): pass class MockGenerationConfig: def __init__(self, *args, **kwargs): pass class MockBitsAndBytesConfig: def __init__(self, *args, **kwargs): pass class MockDynamicCache: def __init__(self, *args, **kwargs): pass class MockTemperatureLogitsWarper: def __init__(self, *args, **kwargs): pass class MockTopKLogitsWarper: def __init__(self, *args, **kwargs): pass class MockTopPLogitsWarper: def __init__(self, *args, **kwargs): pass class MockRepetitionPenaltyLogitsProcessor: def __init__(self, *args, **kwargs): pass class MockEosTokenCriteria: def __init__(self, *args, **kwargs): pass class MockMaxLengthCriteria: def __init__(self, *args, **kwargs): pass # 设置所有需要的transformers组件 transformers_mock.AutoTokenizer = MockAutoTokenizer transformers_mock.AutoModelForCausalLM = MockAutoModelForCausalLM transformers_mock.LogitsProcessorList = MockLogitsProcessorList transformers_mock.StoppingCriteriaList = MockStoppingCriteriaList transformers_mock.GenerationConfig = MockGenerationConfig transformers_mock.BitsAndBytesConfig = MockBitsAndBytesConfig transformers_mock.DynamicCache = MockDynamicCache transformers_mock.TemperatureLogitsWarper = MockTemperatureLogitsWarper transformers_mock.TopKLogitsWarper = MockTopKLogitsWarper transformers_mock.TopPLogitsWarper = MockTopPLogitsWarper transformers_mock.RepetitionPenaltyLogitsProcessor = MockRepetitionPenaltyLogitsProcessor transformers_mock.EosTokenCriteria = MockEosTokenCriteria transformers_mock.MaxLengthCriteria = MockMaxLengthCriteria sys.modules["transformers"] = transformers_mock # Mock ollama模块 if "ollama" not in sys.modules: ollama_mock = types.ModuleType("ollama") class MockClient: def __init__(self, *args, **kwargs): pass def list(self): return {"models": []} def embeddings(self, *args, **kwargs): return {"embedding": [0.0] * 1024} def chat(self, *args, **kwargs): return {"message": {"content": "Mock response"}} ollama_mock.Client = MockClient sys.modules["ollama"] = ollama_mock # Mock neo4j模块 if "neo4j" not in sys.modules: neo4j_mock = types.ModuleType("neo4j") class MockGraphDatabase: @staticmethod def driver(*args, **kwargs): return MockDriver() class MockDriver: def session(self): return MockSession() def close(self): pass class MockSession: def run(self, *args, **kwargs): return MockResult() def close(self): pass class MockResult: def data(self): return [] neo4j_mock.GraphDatabase = MockGraphDatabase sys.modules["neo4j"] = neo4j_mock # Mock qdrant_client模块 if "qdrant_client" not in sys.modules: qdrant_mock = types.ModuleType("qdrant_client") class MockQdrantClient: def __init__(self, *args, **kwargs): pass def search(self, *args, **kwargs): return [] def upsert(self, *args, **kwargs): return True qdrant_mock.QdrantClient = MockQdrantClient sys.modules["qdrant_client"] = qdrant_mock # Mock redis模块 if "redis" not in sys.modules: redis_mock = types.ModuleType("redis") class MockRedis: def __init__(self, *args, **kwargs): pass def get(self, key): return None def set(self, key, value): return True def delete(self, key): return True def exists(self, key): return False redis_mock.Redis = MockRedis sys.modules["redis"] = redis_mock # Mock openai模块 if "openai" not in sys.modules: openai_mock = types.ModuleType("openai") class MockOpenAI: def __init__(self, *args, **kwargs): pass openai_mock.OpenAI = MockOpenAI sys.modules["openai"] = openai_mock # Mock chonkie模块 if "chonkie" not in sys.modules: chonkie_mock = types.ModuleType("chonkie") class MockSentenceChunker: def __init__(self, *args, **kwargs): pass def chunk(self, text): return text.split('.') chonkie_mock.SentenceChunker = MockSentenceChunker sys.modules["chonkie"] = chonkie_mock # Mock sklearn模块 if "sklearn" not in sys.modules: sklearn_mock = types.ModuleType("sklearn") # Mock sklearn.cluster cluster_mock = types.ModuleType("sklearn.cluster") class MockMiniBatchKMeans: def __init__(self, *args, **kwargs): pass def fit(self, data): return self def predict(self, data): return [0] * len(data) cluster_mock.MiniBatchKMeans = MockMiniBatchKMeans sklearn_mock.cluster = cluster_mock sys.modules["sklearn"] = sklearn_mock sys.modules["sklearn.cluster"] = cluster_mock # 在模块导入时自动设置Mock依赖 setup_mock_dependencies() # 设置环境变量 - 专家指导的MINIMAL模式 os.environ["MEMOS_MINIMAL_MODE"] = "1" os.environ["MEMOS_LITE_MODE"] = "true" os.environ["MEMOS_SKIP_HEALTH_CHECK"] = "true" print("🧪 Mock依赖环境已自动设置 - MINIMAL模式启用") # 以下是pytest相关配置,仅在使用pytest时生效 try: import pytest @pytest.fixture(scope="session", autouse=True) def setup_test_environment(): """设置测试环境""" print("🧪 pytest测试环境已设置") yield print("🧪 pytest测试环境清理完成") @pytest.fixture def temp_data_dir(tmp_path): """创建临时数据目录""" return str(tmp_path) # 测试标记定义 def pytest_configure(config): """配置pytest标记""" config.addinivalue_line( "markers", "unit: 单元测试,不需要外部依赖" ) config.addinivalue_line( "markers", "integration: 集成测试,需要外部依赖" ) config.addinivalue_line( "markers", "e2e: 端到端测试,需要完整环境" ) except ImportError: # pytest未安装时跳过相关配置 pass

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/qinshu1109/memos-MCP'

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