Skip to main content
Glama

Mnemosyne MCP

by MumuTW
test_sprint3_integration.py6.33 kB
""" Sprint 3 整合測試 測試混合檢索和影響力分析的整合功能。 """ import time class TestSprint3Integration: """Sprint 3 整合測試類別""" def test_performance_requirements(self): """測試性能要求""" # 模擬性能測試 def simulate_search_performance(): start_time = time.time() # 模擬搜索操作 time.sleep(0.1) # 模擬 100ms 操作 end_time = time.time() return (end_time - start_time) * 1000 # 轉換為毫秒 # 執行性能測試 search_time = simulate_search_performance() # 驗證 SLA assert search_time < 500, f"Search took {search_time:.2f}ms, exceeds 500ms SLA" def test_hybrid_search_workflow(self): """測試混合搜索工作流程""" # 模擬混合搜索流程 def simulate_hybrid_search(query, top_k=10): # 步驟1:向量搜索 vector_results = [ {"node_id": f"func_{i}", "similarity_score": 0.9 - i * 0.1} for i in range(min(top_k // 2, 3)) ] # 步驟2:圖擴展 expanded_nodes = [ {"node_id": f"expanded_{i}", "distance": 1} for i in range(2) ] # 步驟3:結果合併 total_results = len(vector_results) + len(expanded_nodes) return { "vector_results": vector_results, "expanded_nodes": expanded_nodes, "total_results": total_results, "summary": f"Found {total_results} relevant code elements", } # 執行混合搜索 result = simulate_hybrid_search("authentication function", 10) # 驗證結果 assert result["total_results"] > 0 assert len(result["vector_results"]) > 0 assert "authentication" in result["summary"] or "relevant" in result["summary"] def test_impact_analysis_workflow(self): """測試影響力分析工作流程""" # 模擬影響力分析流程 def simulate_impact_analysis(function_name): # 步驟1:查找呼叫者 callers = [ {"caller_id": f"caller_{i}", "caller_name": f"caller_func_{i}"} for i in range(3) ] # 步驟2:查找依賴 dependencies = [ {"dep_id": f"dep_{i}", "dep_name": f"dep_func_{i}"} for i in range(2) ] # 步驟3:計算風險 risk_score = min((len(callers) * 0.1 + len(dependencies) * 0.05), 1.0) # 步驟4:確定風險等級 if risk_score >= 0.6: risk_level = "HIGH" elif risk_score >= 0.3: risk_level = "MEDIUM" else: risk_level = "LOW" return { "function_name": function_name, "callers_count": len(callers), "dependencies_count": len(dependencies), "risk_score": risk_score, "risk_level": risk_level, "summary": f"Function '{function_name}' has {len(callers)} callers and {len(dependencies)} dependencies. Risk level: {risk_level}", } # 執行影響力分析 result = simulate_impact_analysis("login") # 驗證結果 assert result["function_name"] == "login" assert result["callers_count"] >= 0 assert result["dependencies_count"] >= 0 assert result["risk_level"] in ["LOW", "MEDIUM", "HIGH", "CRITICAL"] assert "login" in result["summary"] def test_end_to_end_workflow(self): """測試端到端工作流程""" # 場景:開發者想要修改某個函數 # function_to_modify = "authenticate_user" # 步驟1:搜索相關函數 search_result = { "relevant_functions": [ "authenticate_user", "validate_credentials", "check_permissions", ], "search_time_ms": 150.0, } # 步驟2:分析影響 impact_result = { "risk_level": "MEDIUM", "affected_functions": 5, "analysis_time_ms": 120.0, } # 步驟3:生成建議 recommendations = [ "Review all calling functions for potential breaking changes", "Ensure backward compatibility for public interfaces", "Perform thorough integration testing", ] # 驗證端到端流程 assert len(search_result["relevant_functions"]) > 0 assert search_result["search_time_ms"] < 500 assert impact_result["analysis_time_ms"] < 500 assert len(recommendations) > 0 # 驗證總體性能 total_time = search_result["search_time_ms"] + impact_result["analysis_time_ms"] assert total_time < 1000, f"Total workflow time {total_time}ms too slow" def test_concurrent_operations(self): """測試並發操作""" def simulate_concurrent_requests(): # 模擬多個並發請求 requests = [ {"type": "search", "query": f"query_{i}", "time_ms": 100 + i * 10} for i in range(3) ] requests.extend( [ {"type": "impact", "function": f"func_{i}", "time_ms": 80 + i * 15} for i in range(2) ] ) # 模擬並發執行(實際上是順序執行,但驗證邏輯) total_requests = len(requests) successful_requests = total_requests # 假設全部成功 max_time = max(req["time_ms"] for req in requests) return { "total_requests": total_requests, "successful_requests": successful_requests, "max_time_ms": max_time, "success_rate": (successful_requests / total_requests) * 100, } # 執行並發測試 result = simulate_concurrent_requests() # 驗證並發性能 assert result["success_rate"] == 100.0 assert result["max_time_ms"] < 500 assert result["total_requests"] == result["successful_requests"]

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/MumuTW/Mnemosyne-mcp'

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