test_sentiment_analyzer_paths.py 1.27 KB
from pathlib import Path

from services.engines.insight.tools.sentiment_analyzer import (
    DEFAULT_INSIGHT_SENTIMENT_MODEL_DIR,
    resolve_insight_sentiment_model_dir,
)
from services.shared.config import PROJECT_ROOT


def test_resolve_sentiment_model_dir_defaults_to_project_relative_path():
    expected = (PROJECT_ROOT / DEFAULT_INSIGHT_SENTIMENT_MODEL_DIR).resolve()
    assert resolve_insight_sentiment_model_dir() == expected


def test_resolve_sentiment_model_dir_supports_project_relative_override():
    expected = (PROJECT_ROOT / "research/sentiment_models/weibo-runtime-cache").resolve()
    assert (
        resolve_insight_sentiment_model_dir(
            "research/sentiment_models/weibo-runtime-cache"
        )
        == expected
    )


def test_resolve_sentiment_model_dir_supports_legacy_root_override():
    expected = (
        PROJECT_ROOT / "SentimentAnalysisModel/WeiboMultilingualSentiment"
    ).resolve()
    assert (
        resolve_insight_sentiment_model_dir(
            "SentimentAnalysisModel/WeiboMultilingualSentiment"
        )
        == expected
    )


def test_resolve_sentiment_model_dir_keeps_absolute_override(tmp_path: Path):
    target = (tmp_path / "weibo-runtime").resolve()
    assert resolve_insight_sentiment_model_dir(str(target)) == target