scenarist / tests /test_campaign_vectorizer.py
github-actions[bot]
Sync backend to Hugging Face Space (commit: 39b5c807918249fa80049d49f4b6a74d6a0ed1fc)
6d86412
Raw
History Blame Contribute Delete
1.09 kB
from __future__ import annotations
import pytest
from backend.app.services import campaign_vectorizer
from backend.app.services.campaign_vectorizer import FEATURE_KEYS, extract_campaign_features
def test_extract_campaign_features_explicitly_falls_back_when_llm_errors(
monkeypatch: pytest.MonkeyPatch,
) -> None:
monkeypatch.setattr(campaign_vectorizer.settings, "ollama_api_key", "present-for-test")
monkeypatch.setattr(campaign_vectorizer, "embed_text", lambda _text: [0.0] * 384)
def _raise_llm_error(*_args, **_kwargs):
raise ConnectionError("simulated provider outage")
monkeypatch.setattr(campaign_vectorizer, "llm_create", _raise_llm_error)
result = extract_campaign_features(
"Oncology campaign for senior KOLs focused on phase 3 evidence, safety, and guideline alignment."
)
assert result["model"] == "fallback-llm-error"
assert list(result["features"]) == FEATURE_KEYS
assert list(result["normalized_features"]) == FEATURE_KEYS
assert all(0.0 <= float(value) <= 1.0 for value in result["features"].values())