sh_cpl/unittests/unittests_translation/translation_test_case.py

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))