""" Fixtures for embedding provider tests. """ import pytest from unittest.mock import Mock @pytest.fixture def mock_settings_snapshot(): """Create a mock settings snapshot for testing.""" return { "embeddings.ollama.model": "nomic-embed-text", "llm.ollama.url": "http://localhost:11434", "embeddings.openai.api_key": "test-openai-key", "embeddings.openai.model": "text-embedding-3-small", } @pytest.fixture def mock_empty_settings(): """Create empty settings snapshot (no API keys configured).""" return {} @pytest.fixture def mock_ollama_models_response(): """Create a mock Ollama models list response.""" return { "models": [ {"name": "nomic-embed-text:latest", "size": 274124704}, {"name": "all-minilm:latest", "size": 45418096}, {"name": "mxbai-embed-large:latest", "size": 669682064}, ] } @pytest.fixture def mock_embedding_vectors(): """Create mock embedding vectors for testing.""" return [ [0.1, 0.2, 0.3, 0.4, 0.5] * 76, # 380-dimensional embedding [0.2, 0.3, 0.4, 0.5, 0.6] * 76, ] @pytest.fixture def mock_langchain_embeddings(): """Create a mock LangChain Embeddings instance.""" embeddings = Mock() embeddings.embed_documents.return_value = [ [0.1, 0.2, 0.3] * 128, [0.2, 0.3, 0.4] * 128, ] embeddings.embed_query.return_value = [0.1, 0.2, 0.3] * 128 return embeddings