63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
|
|
"""Shared test fixtures using production-realistic data."""
|
||
|
|
import pytest
|
||
|
|
from unittest.mock import AsyncMock, MagicMock, patch
|
||
|
|
from app.config import Config
|
||
|
|
|
||
|
|
|
||
|
|
@pytest.fixture
|
||
|
|
def production_config():
|
||
|
|
"""Config matching production deployment on deb8."""
|
||
|
|
config = MagicMock(spec=Config)
|
||
|
|
config.ollama_host = "http://10.0.0.10:11434"
|
||
|
|
config.qdrant_host = "http://10.0.0.22:6333"
|
||
|
|
config.qdrant_collection = "memories"
|
||
|
|
config.embedding_model = "snowflake-arctic-embed2"
|
||
|
|
config.semantic_token_budget = 25000
|
||
|
|
config.context_token_budget = 22000
|
||
|
|
config.semantic_search_turns = 2
|
||
|
|
config.semantic_score_threshold = 0.6
|
||
|
|
config.run_time = "02:00"
|
||
|
|
config.curator_model = "gpt-oss:120b"
|
||
|
|
config.debug = False
|
||
|
|
config.vector_size = 1024
|
||
|
|
config.cloud = MagicMock()
|
||
|
|
config.cloud.enabled = False
|
||
|
|
config.cloud.models = {}
|
||
|
|
config.cloud.get_cloud_model.return_value = None
|
||
|
|
return config
|
||
|
|
|
||
|
|
|
||
|
|
@pytest.fixture
|
||
|
|
def sample_qdrant_raw_payload():
|
||
|
|
"""Sample raw payload from production Qdrant."""
|
||
|
|
return {
|
||
|
|
"type": "raw",
|
||
|
|
"text": "User: only change settings, not models\nAssistant: Changed semantic_token_budget from 25000 to 30000\nTimestamp: 2026-03-27T12:50:37.451593Z",
|
||
|
|
"timestamp": "2026-03-27T12:50:37.451593Z",
|
||
|
|
"role": "qa",
|
||
|
|
"content": "User: only change settings, not models\nAssistant: Changed semantic_token_budget from 25000 to 30000\nTimestamp: 2026-03-27T12:50:37.451593Z"
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
@pytest.fixture
|
||
|
|
def sample_ollama_models():
|
||
|
|
"""Model list from production Ollama."""
|
||
|
|
return {
|
||
|
|
"models": [
|
||
|
|
{
|
||
|
|
"name": "snowflake-arctic-embed2:latest",
|
||
|
|
"model": "snowflake-arctic-embed2:latest",
|
||
|
|
"modified_at": "2026-02-16T16:43:44Z",
|
||
|
|
"size": 1160296718,
|
||
|
|
"details": {"family": "bert", "parameter_size": "566.70M", "quantization_level": "F16"}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "gpt-oss:120b",
|
||
|
|
"model": "gpt-oss:120b",
|
||
|
|
"modified_at": "2026-03-11T12:45:48Z",
|
||
|
|
"size": 65369818941,
|
||
|
|
"details": {"family": "gptoss", "parameter_size": "116.8B", "quantization_level": "MXFP4"}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|