| import os |
|
|
| import pytest |
|
|
| from ai_models import ( |
| analyze_crypto_sentiment, |
| analyze_financial_sentiment, |
| analyze_market_text, |
| analyze_social_sentiment, |
| registry_status, |
| ) |
| from config import get_settings |
|
|
| settings = get_settings() |
|
|
|
|
| pytestmark = pytest.mark.skipif( |
| not os.getenv("HF_TOKEN") and not os.getenv("HF_TOKEN_ENCODED"), |
| reason="HF token not configured", |
| ) |
|
|
|
|
| @pytest.mark.skipif(not registry_status()["transformers_available"], reason="transformers not available") |
| def test_crypto_sentiment_structure() -> None: |
| result = analyze_crypto_sentiment("Bitcoin continues its bullish momentum") |
| assert "label" in result |
| assert "score" in result |
|
|
|
|
| @pytest.mark.skipif(not registry_status()["transformers_available"], reason="transformers not available") |
| def test_multi_model_sentiments() -> None: |
| financial = analyze_financial_sentiment("Equities rallied on strong earnings") |
| social = analyze_social_sentiment("The community on twitter is excited about ETH") |
| assert "label" in financial |
| assert "label" in social |
|
|
|
|
| @pytest.mark.skipif(not registry_status()["transformers_available"], reason="transformers not available") |
| def test_market_text_router() -> None: |
| response = analyze_market_text("Summarize Bitcoin market sentiment today") |
| assert "summary" in response |
| assert "signals" in response |
| assert "crypto" in response["signals"] |
|
|