test_rerank_query_text.py 1.64 KB
"""Unit tests for rerank {query} text selection (translation fallback)."""

from query.query_parser import ParsedQuery, rerank_query_text


def test_rerank_query_text_zh_uses_original():
    assert rerank_query_text("你好", detected_language="zh", translations={"en": "hello"}) == "你好"


def test_rerank_query_text_en_uses_original():
    assert rerank_query_text("hello", detected_language="en", translations={"zh": "你好"}) == "hello"


def test_rerank_query_text_russian_prefers_en_translation():
    assert (
        rerank_query_text(
            "красное платье",
            detected_language="ru",
            translations={"en": "red dress", "zh": "红裙"},
        )
        == "red dress"
    )


def test_rerank_query_text_russian_falls_back_to_zh_when_no_en():
    assert (
        rerank_query_text(
            "красное платье",
            detected_language="ru",
            translations={"zh": "红裙"},
        )
        == "红裙"
    )


def test_rerank_query_text_non_zh_en_falls_back_to_original_without_translations():
    assert rerank_query_text("foo", detected_language="ja", translations={}) == "foo"


def test_rerank_query_text_unknown_language_uses_en_when_present():
    assert (
        rerank_query_text("x", detected_language="unknown", translations={"en": "translated"})
        == "translated"
    )


def test_parsed_query_text_for_rerank_delegates():
    pq = ParsedQuery(
        original_query="orig",
        query_normalized="orig",
        rewritten_query="rewritten",
        detected_language="fr",
        translations={"en": "en version"},
    )
    assert pq.text_for_rerank() == "en version"