68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
|
import os
|
||
|
import unittest
|
||
|
from typing import Optional
|
||
|
|
||
|
from cpl_translation import TranslationService, TranslatePipe, TranslationSettings
|
||
|
from unittests_cli.constants import TRANSLATION_PATH
|
||
|
|
||
|
|
||
|
class TranslationTestCase(unittest.TestCase):
|
||
|
|
||
|
def __init__(self, methodName: str):
|
||
|
unittest.TestCase.__init__(self, methodName)
|
||
|
self._translation: Optional[TranslationService] = None
|
||
|
self._translate: Optional[TranslatePipe] = None
|
||
|
|
||
|
def setUp(self):
|
||
|
os.chdir(os.path.abspath(TRANSLATION_PATH))
|
||
|
self._translation = TranslationService()
|
||
|
settings = TranslationSettings()
|
||
|
settings.from_dict({
|
||
|
"Languages": [
|
||
|
"de",
|
||
|
"en"
|
||
|
],
|
||
|
"DefaultLanguage": "en"
|
||
|
})
|
||
|
self._translation.load_by_settings(settings)
|
||
|
self._translation.set_default_lang('de')
|
||
|
self._translate = TranslatePipe(self._translation)
|
||
|
|
||
|
def cleanUp(self):
|
||
|
pass
|
||
|
|
||
|
def test_service(self):
|
||
|
self.assertEqual('Hallo Welt', self._translation.translate('main.text.hello_world'))
|
||
|
self._translation.set_lang('en')
|
||
|
self.assertEqual('Hello World', self._translation.translate('main.text.hello_world'))
|
||
|
with self.assertRaises(KeyError) as ctx:
|
||
|
self._translation.translate('main.text.hallo_welt')
|
||
|
|
||
|
self.assertTrue(type(ctx.exception) == KeyError)
|
||
|
self.assertIn('Translation main.text.hallo_welt not found', str(ctx.exception))
|
||
|
|
||
|
with self.assertRaises(FileNotFoundError) as ctx:
|
||
|
self._translation.load('DE')
|
||
|
|
||
|
self.assertTrue(type(ctx.exception) == FileNotFoundError)
|
||
|
|
||
|
with self.assertRaises(KeyError) as ctx:
|
||
|
self._translation.set_lang('DE')
|
||
|
|
||
|
self.assertTrue(type(ctx.exception) == KeyError)
|
||
|
|
||
|
with self.assertRaises(KeyError) as ctx:
|
||
|
self._translation.set_default_lang('DE')
|
||
|
|
||
|
self.assertTrue(type(ctx.exception) == KeyError)
|
||
|
|
||
|
def test_pipe(self):
|
||
|
self.assertEqual('Hallo Welt', self._translate.transform('main.text.hello_world'))
|
||
|
self._translation.set_lang('en')
|
||
|
self.assertEqual('Hello World', self._translate.transform('main.text.hello_world'))
|
||
|
with self.assertRaises(KeyError) as ctx:
|
||
|
self._translation.translate('main.text.hallo_welt')
|
||
|
|
||
|
self.assertTrue(type(ctx.exception) == KeyError)
|
||
|
self.assertIn('Translation main.text.hallo_welt not found', str(ctx.exception))
|