Spaces:
Sleeping
Sleeping
feat: update classifier model to local zero-shot NLI and enhance language detection with local library
2d0ef3b | 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.") | |