|
|
|
|
|
"""Tests for `deep_translator` package.""" |
|
|
|
import pytest |
|
|
|
from deep_translator import LibreTranslator, exceptions |
|
from deep_translator.constants import LIBRE_LANGUAGES_TO_CODES |
|
|
|
|
|
@pytest.fixture |
|
def libre(): |
|
return LibreTranslator(source="en", target="fr", api_key="some_key") |
|
|
|
|
|
def test_inputs(): |
|
with pytest.raises(exceptions.InvalidSourceOrTargetLanguage): |
|
LibreTranslator(source="", target="", api_key="some_key") |
|
|
|
with pytest.raises(exceptions.InvalidSourceOrTargetLanguage): |
|
LibreTranslator(source="auto", target="", api_key="some_key") |
|
|
|
with pytest.raises(exceptions.InvalidSourceOrTargetLanguage): |
|
LibreTranslator(source="", target="en", api_key="some_key") |
|
|
|
|
|
def test_abbreviations_and_languages_mapping(): |
|
for abb, lang in LIBRE_LANGUAGES_TO_CODES.items(): |
|
l1 = LibreTranslator(source=abb, api_key="some_key") |
|
l2 = LibreTranslator(source=lang, api_key="some_key") |
|
assert l1._source == l2._source |
|
|
|
|
|
def test_payload(libre): |
|
with pytest.raises(exceptions.NotValidPayload): |
|
libre.translate({}) |
|
|
|
with pytest.raises(exceptions.NotValidPayload): |
|
libre.translate([]) |
|
|