Spaces:
Sleeping
Sleeping
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.")
|