GitHub Actions
Clean sync from GitHub - no large files in history
aca8ab4
"""
Quick integration test to verify the app works with refactored MCP client.
"""
import os
import sys
from pathlib import Path
# Set environment to use MCP
os.environ["USE_MCP_ARXIV"] = "true"
os.environ["MCP_ARXIV_STORAGE_PATH"] = "data/test_integration_papers"
# Ensure we're in the project directory
sys.path.insert(0, str(Path(__file__).parent))
from dotenv import load_dotenv
load_dotenv()
from app import ResearchPaperAnalyzer
import logging
# Set up 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:
# Initialize analyzer
analyzer = ResearchPaperAnalyzer()
# Check that MCP client was selected
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
# Test search via retriever
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": []
}
# Run retriever
result_state = analyzer.retriever_agent.run(test_state)
# Check results
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)