class TranslatorPostProcessorTest(unittest.TestCase): def setUp(self): self.client = TestClient() config = BotConfiguration() config.from_translator._classname = "programy.nlp.translate.textblob_translator.TextBlobTranslator" config.from_translator._from_lang = "fr" config.from_translator._to_lang = "en" config.to_translator._classname = "programy.nlp.translate.textblob_translator.TextBlobTranslator" config.to_translator._from_lang = "en" config.to_translator._to_lang = "fr" self.bot = Bot(config=config, client=self.client) self.bot.initiate_translator() @unittest.skipIf(Externals.google_translate is False or Externals.all_externals is False, Externals.google_translate_disabled) def test_post_process_translate(self): processor = TranslatorPostProcessor() context = MockClientContext(self.bot) self.assertTrue( processor.process(context, "Hello") in ["Bonjour", "Salut"]) def test_post_process_translate_translater_unavailable(self): processor = TranslatorPostProcessor() context = MockClientContext(self.bot) context.bot._to_translator = None self.assertFalse( processor.process(context, "Hello") in ["Bonjour", "Salut"]) def patch_translate(self, context, translator, word_string, translator_config): raise Exception("Mock Exception") @patch( "programy.processors.post.translate.TranslatorPostProcessor._translate", patch_translate) def test_post_process_translate_translater_exception(self): processor = TranslatorPostProcessor() context = MockClientContext(self.bot) self.assertEquals("Hello", processor.process(context, "Hello"))
class TranslatorPreProcessorTest(unittest.TestCase): def setUp(self): self.client = TestClient() config = BotConfiguration() config.from_translator._classname = "programy.nlp.translate.textblob_translator.TextBlobTranslator" config.from_translator._from_lang = "fr" config.from_translator._to_lang = "en" config.to_translator._classname = "programy.nlp.translate.textblob_translator.TextBlobTranslator" config.to_translator._from_lang = "en" config.to_translator._to_lang = "fr" self.bot = Bot(config=config, client=self.client) self.bot.initiate_translator() @unittest.skipIf(Externals.google_translate is False or Externals.all_externals is False, Externals.google_translate_disabled) def test_pre_process_translate(self): processor = TranslatorPreProcessor() context = MockClientContext(self.bot) self.assertEqual("Hello", processor.process(context, "Bonjour")) def test_pre_process_translate_disabled(self): processor = TranslatorPreProcessor() context = MockClientContext(self.bot) context.bot._from_translator = None self.assertEqual("Hello", processor.process(context, "Hello")) def test_pre_process_translate_exception(self): processor = MockTranslatorPreProcessor() context = MockClientContext(self.bot) self.assertEqual("Hello", processor.process(context, "Hello"))
class TranslatorPostProcessorTest(unittest.TestCase): def setUp(self): self.client = TestClient() config = BotConfiguration() config.from_translator._classname = "programy.translate.textblob_translator.TextBlobTranslator" config.from_translator._from_lang = "fr" config.from_translator._to_lang = "en" config.to_translator._classname = "programy.translate.textblob_translator.TextBlobTranslator" config.to_translator._from_lang = "en" config.to_translator._to_lang = "fr" self.bot = Bot(config=config, client=self.client) self.bot.initiate_translator() def test_post_process_translate(self): processor = TranslatorPostProcessor() context = MockClientContext(self.bot) self.assertEqual("Bonjour", processor.process(context, "Hello"))