test_translation.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import pytest
  2. from manga_translator.translators import (
  3. TRANSLATORS,
  4. TranslatorChain,
  5. OfflineTranslator,
  6. MissingAPIKeyException,
  7. dispatch,
  8. )
  9. from manga_translator.translators.common import LanguageUnsupportedException
  10. @pytest.mark.asyncio
  11. async def test_mixed_languages():
  12. queries = ['How to be dead everyday', '', 'Ich bin ein deutscher', 'Test case m. HELLO THERE I WANT an audition! YOYOYOYO', '目标意识']
  13. try:
  14. chain = TranslatorChain('youdao:ENG')
  15. print(await dispatch(chain, queries))
  16. except MissingAPIKeyException as e:
  17. print(e)
  18. @pytest.mark.asyncio
  19. async def test_single_language():
  20. queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。']
  21. try:
  22. chain = TranslatorChain('youdao:CHS')
  23. print(await dispatch(chain, queries))
  24. except MissingAPIKeyException as e:
  25. print(e)
  26. @pytest.mark.asyncio
  27. async def test_chain():
  28. queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。']
  29. try:
  30. chain = TranslatorChain('gpt3.5:JPN;sugoi:ENG')
  31. print(await dispatch(chain, queries))
  32. except MissingAPIKeyException as e:
  33. print(e)
  34. @pytest.mark.asyncio
  35. async def test_online_translators():
  36. queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。']
  37. for key in TRANSLATORS:
  38. if issubclass(TRANSLATORS[key], OfflineTranslator):
  39. continue
  40. try:
  41. chain = TranslatorChain(f'{key}:ENG')
  42. print(await dispatch(chain, queries))
  43. except (MissingAPIKeyException, LanguageUnsupportedException) as e:
  44. print(e)
  45. @pytest.mark.asyncio
  46. async def test_offline_translators():
  47. queries = ['僕はアイネと共に一度、宿の方に戻った', '改めて直面するのは部屋の問題――部屋のベッドが一つでは、さすがに狭すぎるだろう。']
  48. for key in ('offline', 'sugoi', 'm2m100_big'):
  49. if not issubclass(TRANSLATORS[key], OfflineTranslator):
  50. continue
  51. chain = TranslatorChain(f'{key}:ENG')
  52. print(await dispatch(chain, queries))