| """ |
| Quick integration test to verify the app works with refactored MCP client. |
| """ |
| import os |
| import sys |
| from pathlib import Path |
|
|
| |
| os.environ["USE_MCP_ARXIV"] = "true" |
| os.environ["MCP_ARXIV_STORAGE_PATH"] = "data/test_integration_papers" |
|
|
| |
| sys.path.insert(0, str(Path(__file__).parent)) |
|
|
| from dotenv import load_dotenv |
| load_dotenv() |
|
|
| from app import ResearchPaperAnalyzer |
| import logging |
|
|
| |
| logging.basicConfig( |
| level=logging.INFO, |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' |
| ) |
| logger = logging.getLogger(__name__) |
|
|
| def test_retriever_agent(): |
| """Test that RetrieverAgent works with refactored MCP client.""" |
| logger.info("=" * 80) |
| logger.info("Testing RetrieverAgent with refactored MCP client") |
| logger.info("=" * 80) |
|
|
| try: |
| |
| analyzer = ResearchPaperAnalyzer() |
|
|
| |
| logger.info(f"\nArxiv client type: {type(analyzer.arxiv_client).__name__}") |
|
|
| if type(analyzer.arxiv_client).__name__ != "MCPArxivClient": |
| logger.error("β Expected MCPArxivClient but got different client") |
| return False |
|
|
| |
| logger.info("\nTesting search through RetrieverAgent...") |
| test_state = { |
| "query": "transformer architecture", |
| "category": "cs.AI", |
| "num_papers": 2, |
| "token_usage": {"input_tokens": 0, "output_tokens": 0, "embedding_tokens": 0}, |
| "errors": [] |
| } |
|
|
| |
| result_state = analyzer.retriever_agent.run(test_state) |
|
|
| |
| if "papers" in result_state and len(result_state["papers"]) > 0: |
| logger.info(f"\nβ Successfully retrieved {len(result_state['papers'])} papers") |
| for i, paper in enumerate(result_state["papers"], 1): |
| logger.info(f" {i}. {paper.title[:80]}...") |
| logger.info(f" arXiv ID: {paper.arxiv_id}") |
| return True |
| else: |
| logger.error("\nβ No papers retrieved") |
| return False |
|
|
| except Exception as e: |
| logger.error(f"\nβ Integration test failed: {str(e)}", exc_info=True) |
| return False |
|
|
| if __name__ == "__main__": |
| success = test_retriever_agent() |
|
|
| logger.info("\n" + "=" * 80) |
| if success: |
| logger.info("β Integration test PASSED") |
| else: |
| logger.info("β Integration test FAILED") |
| logger.info("=" * 80) |
|
|
| sys.exit(0 if success else 1) |
|
|