""" Mock fixtures for testing - inspired by scottvr's contributions. This module contains reusable mock data and fixtures for various components. """ from typing import Any, Dict, List # ============== Search Engine Mock Responses ============== def get_mock_search_results() -> List[Dict[str, Any]]: """Sample search results for testing.""" return [ { "title": "Test Result 1", "link": "https://example.com/1", "snippet": "This is the first test result snippet.", "full_content": "This is the full content of the first test result.", }, { "title": "Test Result 2", "link": "https://example.com/2", "snippet": "This is the second test result snippet.", "full_content": "This is the full content of the second test result.", }, ] def get_mock_wikipedia_response() -> Dict[str, Any]: """Mock response from Wikipedia API.""" return { "query": { "search": [ { "title": "Artificial intelligence", "snippet": "Artificial intelligence (AI) is intelligence demonstrated by machines...", "pageid": 12345, }, { "title": "Machine learning", "snippet": "Machine learning (ML) is a subset of artificial intelligence (AI)...", "pageid": 67890, }, ] } } def get_mock_arxiv_response() -> str: """Mock XML response from arXiv API.""" return """ Test Paper Title http://arxiv.org/abs/2301.12345 This is a test paper abstract. 2023-01-15T00:00:00Z Test Author """ def get_mock_pubmed_response() -> str: """Mock XML response from PubMed search API.""" return """ 12345678 """ def get_mock_pubmed_article() -> str: """Mock PubMed article detail XML.""" return """ 12345678
Test Medical Research Paper This is a test medical abstract. Smith John Test Medical Journal 10 2 2023
""" def get_mock_semantic_scholar_response() -> Dict[str, Any]: """Mock response from Semantic Scholar API.""" return { "data": [ { "paperId": "abc123", "title": "Test Research Paper", "abstract": "This is a test abstract from Semantic Scholar.", "year": 2023, "authors": [{"name": "John Doe"}, {"name": "Jane Smith"}], "url": "https://www.semanticscholar.org/paper/abc123", } ] } def get_mock_google_pse_response() -> Dict[str, Any]: """Mock response from Google Programmable Search Engine.""" return { "items": [ { "title": "Google Search Result 1", "link": "https://example.com/google1", "snippet": "This is a Google search result snippet.", "pagemap": { "metatags": [{"og:description": "Extended description"}] }, } ] } # ============== Research System Mock Data ============== def get_mock_findings() -> Dict[str, Any]: """Sample research findings for testing.""" return { "findings": [ { "content": "Finding 1 about AI research", "source": "https://example.com/1", }, { "content": "Finding 2 about machine learning applications", "source": "https://example.com/2", }, ], "current_knowledge": "AI research has made significant progress in recent years with applications in various fields.", "iterations": 2, "questions_by_iteration": { 1: [ "What are the latest advances in AI?", "How is AI applied in healthcare?", ], 2: [ "What ethical concerns exist in AI development?", "What is the future of AI research?", ], }, } def get_mock_ollama_response() -> Dict[str, Any]: """Mock response from Ollama API.""" return { "model": "gemma3:12b", "created_at": "2023-06-01T12:00:00Z", "response": "This is a test response from the mocked LLM API.", "done": True, } # ============== Error Response Mocks ============== def get_mock_error_responses() -> Dict[str, Any]: """Collection of error responses for testing error handling.""" return { "http_500": {"status_code": 500, "error": "Internal Server Error"}, "http_404": {"status_code": 404, "error": "Not Found"}, "http_429": {"status_code": 429, "error": "Too Many Requests"}, "network_timeout": {"error": "Connection timeout"}, "invalid_json": '{"invalid": json"', "empty_response": "", "null_response": None, } # ============== Database Mock Data ============== def get_mock_research_history() -> List[Dict[str, Any]]: """Mock research history entries.""" return [ { "id": 1, "query": "artificial intelligence applications", "timestamp": "2023-06-01 10:00:00", "status": "completed", "results": '{"findings": ["AI is used in healthcare", "AI powers recommendation systems"]}', }, { "id": 2, "query": "climate change solutions", "timestamp": "2023-06-01 11:00:00", "status": "in_progress", "results": None, }, ] # ============== Settings Mock Data ============== def get_mock_settings() -> Dict[str, Any]: """Mock settings configuration.""" return { "llm": { "provider": "ollama", "model": "gemma3:12b", "temperature": 0.7, "max_tokens": 4096, }, "search": { "tool": "searxng", "iterations": 3, "questions_per_iteration": 2, "max_results": 50, }, "general": { "enable_fact_checking": True, "cache_results": True, "debug_mode": False, }, }