diff --git a/libretranslate/tests/test_api/test_language_variant_fallback.py b/libretranslate/tests/test_api/test_language_variant_fallback.py new file mode 100644 index 0000000..b28a046 --- /dev/null +++ b/libretranslate/tests/test_api/test_language_variant_fallback.py @@ -0,0 +1,50 @@ +import sys +import pytest +from libretranslate.app import create_app +from libretranslate.main import get_args + + +@pytest.fixture() +def app_with_pb(): + sys.argv = ['', '--load-only', 'en,pb'] + app = create_app(get_args()) + yield app + + +@pytest.fixture() +def client_with_pb(app_with_pb): + return app_with_pb.test_client() + + +@pytest.fixture() +def app_with_pt(): + sys.argv = ['', '--load-only', 'en,pt'] + app = create_app(get_args()) + yield app + + +@pytest.fixture() +def client_with_pt(app_with_pt): + return app_with_pt.test_client() + + +def test_portuguese_fallback_pb_to_pt(client_with_pt): + response = client_with_pt.post("/translate", data={ + "q": "Hello", + "source": "en", + "target": "pb", + "format": "text" + }) + + assert response.status_code == 200 + + +def test_portuguese_fallback_pt_to_pb(client_with_pb): + response = client_with_pb.post("/translate", data={ + "q": "Hello", + "source": "en", + "target": "pt", + "format": "text" + }) + + assert response.status_code == 200