import os import sys import pytest pytest_plugins = ('pytest_asyncio') sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from manga_translator.translators import ( TRANSLATORS, TranslatorChain, OfflineTranslator, MissingAPIKeyException, dispatch, ) @pytest.mark.asyncio async def test_mixed_languages(): queries = ['How to be dead everyday', '', 'Ich bin ein deutscher', 'Test case m. HELLO THERE I WANT an audition! YOYOYOYO', '目标意识'] chain = TranslatorChain('google:ENG') print(await dispatch(chain, queries)) @pytest.mark.asyncio async def test_single_language(): queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。'] chain = TranslatorChain('google:ENG') print(await dispatch(chain, queries)) @pytest.mark.asyncio async def test_chain(): queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。'] chain = TranslatorChain('google:JPN;sugoi:ENG') print(await dispatch(chain, queries)) @pytest.mark.asyncio async def test_online_translators(): queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。'] for key in TRANSLATORS: if issubclass(TRANSLATORS[key], OfflineTranslator): continue try: chain = TranslatorChain(f'{key}:ENG') print(await dispatch(chain, queries)) except MissingAPIKeyException as e: print(e) @pytest.mark.asyncio async def test_offline_translators(): queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。'] for key in ('offline', 'sugoi', 'm2m100_big'): if not issubclass(TRANSLATORS[key], OfflineTranslator): continue chain = TranslatorChain(f'{key}:ENG') print(await dispatch(chain, queries))