예제 #1
0
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"))
예제 #2
0
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"))
예제 #3
0
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"))