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