Spaces:
Sleeping
Sleeping
File size: 1,086 Bytes
6d86412 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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())
|