40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
"""Verify that bootstrap correctly wires the reranker when the setting is enabled."""
|
|
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
|
|
def test_get_reranker_returns_none_when_disabled():
|
|
"""get_reranker() must return None when reranker_enabled is False."""
|
|
with patch("app.shared.bootstrap._build_binary_store"), \
|
|
patch("app.shared.bootstrap._build_vector_index"):
|
|
from app.shared import bootstrap
|
|
bootstrap.get_reranker.cache_clear()
|
|
|
|
with patch("app.shared.bootstrap.settings") as mock_settings:
|
|
mock_settings.reranker_enabled = False
|
|
mock_settings.reranker_base_url = ""
|
|
result = bootstrap.get_reranker()
|
|
|
|
bootstrap.get_reranker.cache_clear()
|
|
assert result is None
|
|
|
|
|
|
def test_get_reranker_returns_instance_when_enabled():
|
|
"""get_reranker() must return an OpenAICompatibleReranker when enabled."""
|
|
from app.shared import bootstrap
|
|
bootstrap.get_reranker.cache_clear()
|
|
|
|
with patch("app.shared.bootstrap.settings") as mock_settings:
|
|
mock_settings.reranker_enabled = True
|
|
mock_settings.reranker_base_url = "http://localhost:8082"
|
|
mock_settings.reranker_model = "BAAI/bge-reranker-v2-m3"
|
|
mock_settings.reranker_api_key = ""
|
|
mock_settings.reranker_top_k = 5
|
|
result = bootstrap.get_reranker()
|
|
|
|
bootstrap.get_reranker.cache_clear()
|
|
from app.infrastructure.vectorstore.cross_encoder_reranker import OpenAICompatibleReranker
|
|
assert isinstance(result, OpenAICompatibleReranker)
|