File size: 1,387 Bytes
2d0ef3b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
29
30
31
32
33
34
35
import pytest

from app.core.exceptions import LanguageDetectionError
import app.services.language_service as language_module


def test_detect_language_returns_en_for_english_and_non_en_for_french():
    service = language_module.LanguageService()

    english_text = "This is a detailed English sentence about technology trends and financial markets."
    french_text = "Ceci est une phrase francaise detaillee sur les tendances technologiques et les marches financiers."

    assert service.detect_language(english_text) == "en"
    assert service.detect_language(french_text) != "en"


def test_detect_language_raises_for_invalid_detector_output(monkeypatch):
    service = language_module.LanguageService()
    monkeypatch.setattr(language_module, "detect", lambda text: "")

    with pytest.raises(LanguageDetectionError, match="did not return a valid label"):
        service.detect_language("This text is long enough for language detection.")


def test_detect_language_wraps_unexpected_detector_errors(monkeypatch):
    service = language_module.LanguageService()

    def _raise_error(_: str):
        raise RuntimeError("unexpected detector failure")

    monkeypatch.setattr(language_module, "detect", _raise_error)

    with pytest.raises(LanguageDetectionError, match="unexpected error"):
        service.detect_language("This text is long enough for language detection.")