def test_saves_repeated_request(): rand_num = randint(0, 10**100) request_data = { "from_language": "en", "to_language": "es", "source_text": f"hello {rand_num}", "preferred_engine": "google", "with_alignment": False, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 200 result = resp.json() expected_result = { "translated_text": f"hola {rand_num}", "engine": "google", "engine_version": "3", "from_language": "en", "to_language": "es", "source_text": f"hello {rand_num}", "detected_language_confidence": None, "alignment": None, } assert result == expected_result assert resp.headers["X-Translation-Source"] == "api" sleep(5) repeated_resp = httpx.get(translate_url(), params=request_data) repeated_result = repeated_resp.json() assert repeated_result == expected_result assert repeated_resp.headers["X-Translation-Source"] == "database"
def test_translate_amazon_detection(): request_data = { "to_language": "es", "source_text": "hello", "preferred_engine": "amazon", "with_alignment": False, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 400 result = resp.json() assert result == { "detail": "amazon (2020-04-30) engine does not support detection, please specify from_language" }
def test_translate_deepl_alignment(): request_data = { "to_language": "es", "source_text": "hello", "preferred_engine": "deepl", "with_alignment": True, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 400 result = resp.json() assert result == { "detail": "deepl (2) does not support alignment", }
def test_translate_microsoft_alignment_with_bad_pair(): request_data = { "from_language": "es", "to_language": "fr", "source_text": "hola", "preferred_engine": "microsoft", "with_alignment": True, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 400 result = resp.json() assert result == { "detail": "microsoft (3.0) engine does not support alignment between es and fr" }
def test_translate_deepl_detection(): request_data = { "to_language": "es", "source_text": "hello", "preferred_engine": "deepl", "with_alignment": False, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 200 result = resp.json() assert result == { "translated_text": "hola", "engine": "deepl", "engine_version": "2", "from_language": "en", "to_language": "es", "source_text": "hello", "detected_language_confidence": None, "alignment": None, }
def test_is_best_for_korean(): request_data = { "from_language": "en", "to_language": "ko", "source_text": "hello", "with_alignment": False, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 200 result = resp.json() assert result == { "translated_text": "안녕하십니까", "engine": "papago", "engine_version": "1", "from_language": "en", "to_language": "ko", "source_text": "hello", "detected_language_confidence": None, "alignment": None, }
def test_post_method(): request_data = { "from_language": "en", "to_language": "es", "source_text": "hello", "preferred_engine": "microsoft", "with_alignment": False, } resp = httpx.post(translate_url(), json=request_data) assert resp.status_code == 200 result = resp.json() assert result == { "translated_text": "Hola", "engine": "microsoft", "engine_version": "3.0", "from_language": "en", "to_language": "es", "source_text": "hello", "detected_language_confidence": None, "alignment": None, }
def test_will_fallback_when_papago_does_not_support_language_pair(): request_data = { "from_language": "en", "to_language": "es", "source_text": "hello", "with_alignment": False, "fallback": True, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 200 result = resp.json() assert result == { "translated_text": "hola", "engine": "deepl", "engine_version": "2", "from_language": "en", "to_language": "es", "source_text": "hello", "detected_language_confidence": None, "alignment": None, }
def test_falls_back_when_alignment_required_even_though_not_best(): request_data = { "from_language": "en", "to_language": "ko", "source_text": "hello", "fallback": True, "with_alignment": True, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 200 result = resp.json() assert result == { "translated_text": "안녕하세요", "engine": "microsoft", "engine_version": "3.0", "from_language": "en", "to_language": "ko", "source_text": "hello", "detected_language_confidence": None, "alignment": [{ "dest": { "end": "4", "start": "0", "text": "안녕하세요" }, "src": { "end": "4", "start": "0", "text": "hello" }, }], }
def test_translate_microsoft_alignment(): request_data = { "from_language": "en", "to_language": "es", "source_text": "hello", "preferred_engine": "microsoft", "with_alignment": True, } resp = httpx.get(translate_url(), params=request_data) assert resp.status_code == 200 result = resp.json() assert result == { "translated_text": "Hola", "engine": "microsoft", "engine_version": "3.0", "from_language": "en", "to_language": "es", "source_text": "hello", "detected_language_confidence": None, "alignment": [{ "dest": { "end": "3", "start": "0", "text": "Hola" }, "src": { "end": "4", "start": "0", "text": "hello" }, }], }