"""Shared fixtures for utilities tests.""" import pytest @pytest.fixture def sample_search_results(): """Sample search results with standard format.""" return [ { "title": "First Article", "link": "https://example.com/article1", "index": "1", }, { "title": "Second Article", "link": "https://example.org/article2", "index": "2", }, { "title": "Third Article", "link": "https://test.com/article3", "index": "3", }, ] @pytest.fixture def sample_search_results_with_duplicates(): """Search results with duplicate URLs.""" return [ { "title": "First Article", "link": "https://example.com/article1", "index": "1", }, { "title": "Second Article", "link": "https://example.com/article1", # Duplicate URL "index": "2", }, { "title": "Third Article", "link": "https://test.com/article3", "index": "3", }, ] @pytest.fixture def sample_findings(): """Sample findings list for format_findings tests.""" return [ { "phase": "Initial Search", "content": "This is the initial search content.", "search_results": [ { "title": "Source 1", "link": "https://source1.com", "index": "1", } ], }, { "phase": "Follow-up Iteration 1.1", "content": "Follow-up content for iteration 1.", "search_results": [ { "title": "Source 2", "link": "https://source2.com", "index": "2", } ], }, ] @pytest.fixture def sample_questions_by_iteration(): """Sample questions organized by iteration.""" return { 1: ["What is the main topic?", "Who are the key players?"], 2: ["What are the implications?", "What is the timeline?"], } @pytest.fixture def sample_findings_with_subquery(): """Findings with Sub-query phases (IterDRAG strategy).""" return [ { "phase": "Sub-query 1", "content": "Content for sub-query 1.", "search_results": [], }, { "phase": "Sub-query 2", "content": "Content for sub-query 2.", "search_results": [], }, ] @pytest.fixture def subquery_questions(): """Questions for Sub-query phases (stored in iteration 0).""" return { 0: ["What is X?", "How does Y work?", "Why is Z important?"], }