""" Shared fixtures for advanced search system supporting module tests. """ import json from unittest.mock import Mock import pytest @pytest.fixture def mock_llm(): """Create a mock LLM for testing supporting modules.""" mock = Mock() def invoke_side_effect(prompt, *args, **kwargs): if isinstance(prompt, list): prompt_text = " ".join( msg.content if hasattr(msg, "content") else str(msg) for msg in prompt ) else: prompt_text = str(prompt) prompt_lower = prompt_text.lower() # Question generation if "question" in prompt_lower: response = Mock() response.content = ( "1. What are the key aspects?\n" "2. How has this evolved?\n" "3. What are the main challenges?" ) return response # Constraint extraction if "constraint" in prompt_lower: response = Mock() response.content = json.dumps( { "constraints": [ {"type": "temporal", "value": "2023"}, {"type": "geographic", "value": "global"}, ] } ) return response # Default response = Mock() response.content = "Mock response for testing" return response mock.invoke = Mock(side_effect=invoke_side_effect) return mock @pytest.fixture def sample_search_results(): """Sample search results for testing.""" return [ { "title": "Test Article 1", "link": "https://example.com/1", "snippet": "This is a test snippet about the topic.", }, { "title": "Test Article 2", "link": "https://example.com/2", "snippet": "Another test snippet with different content.", }, ] @pytest.fixture def sample_query(): """Sample research query.""" return "What are the environmental impacts of electric vehicles?"