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