39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import unittest
|
|
from unittest.mock import MagicMock, patch
|
|
from meshchatx.src.backend.translator_handler import TranslatorHandler
|
|
|
|
|
|
class TestTranslatorHandler(unittest.TestCase):
|
|
def setUp(self):
|
|
self.handler = TranslatorHandler(enabled=True)
|
|
|
|
@patch("requests.get")
|
|
def test_get_supported_languages(self, mock_get):
|
|
self.handler.has_requests = True
|
|
mock_get.return_value = MagicMock(status_code=200)
|
|
mock_get.return_value.json.return_value = [
|
|
{"code": "en", "name": "English"},
|
|
{"code": "de", "name": "German"},
|
|
]
|
|
|
|
langs = self.handler.get_supported_languages()
|
|
self.assertEqual(len(langs), 2)
|
|
self.assertEqual(langs[0]["code"], "en")
|
|
|
|
@patch("requests.post")
|
|
def test_translate_text_libretranslate(self, mock_post):
|
|
self.handler.has_requests = True
|
|
mock_post.return_value = MagicMock(status_code=200)
|
|
mock_post.return_value.json.return_value = {
|
|
"translatedText": "Hallo",
|
|
"detectedLanguage": {"language": "en"},
|
|
}
|
|
|
|
result = self.handler.translate_text("Hello", "en", "de")
|
|
self.assertEqual(result["translated_text"], "Hallo")
|
|
self.assertEqual(result["source"], "libretranslate")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|