mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
"""Tests for Gateway i18n pack endpoint."""
|
|
|
|
import json
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
from aiohttp import web
|
|
|
|
from trustgraph.gateway.endpoint.i18n import I18nPackEndpoint
|
|
|
|
|
|
class TestI18nPackEndpoint:
|
|
|
|
def test_i18n_endpoint_initialization(self):
|
|
mock_auth = MagicMock()
|
|
|
|
endpoint = I18nPackEndpoint(
|
|
endpoint_path="/api/v1/i18n/packs/{lang}",
|
|
auth=mock_auth,
|
|
)
|
|
|
|
assert endpoint.path == "/api/v1/i18n/packs/{lang}"
|
|
assert endpoint.auth == mock_auth
|
|
assert endpoint.operation == "service"
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_i18n_endpoint_start_method(self):
|
|
mock_auth = MagicMock()
|
|
endpoint = I18nPackEndpoint("/api/v1/i18n/packs/{lang}", mock_auth)
|
|
await endpoint.start()
|
|
|
|
def test_add_routes_registers_get_handler(self):
|
|
mock_auth = MagicMock()
|
|
mock_app = MagicMock()
|
|
|
|
endpoint = I18nPackEndpoint("/api/v1/i18n/packs/{lang}", mock_auth)
|
|
endpoint.add_routes(mock_app)
|
|
|
|
mock_app.add_routes.assert_called_once()
|
|
call_args = mock_app.add_routes.call_args[0][0]
|
|
assert len(call_args) == 1
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_handle_unauthorized_on_invalid_auth_scheme(self):
|
|
mock_auth = MagicMock()
|
|
mock_auth.permitted.return_value = True
|
|
|
|
endpoint = I18nPackEndpoint("/api/v1/i18n/packs/{lang}", mock_auth)
|
|
|
|
request = MagicMock()
|
|
request.path = "/api/v1/i18n/packs/en"
|
|
request.headers = {"Authorization": "Token abc"}
|
|
request.match_info = {"lang": "en"}
|
|
|
|
resp = await endpoint.handle(request)
|
|
assert isinstance(resp, web.HTTPUnauthorized)
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_handle_returns_pack_when_permitted(self):
|
|
mock_auth = MagicMock()
|
|
mock_auth.permitted.return_value = True
|
|
|
|
endpoint = I18nPackEndpoint("/api/v1/i18n/packs/{lang}", mock_auth)
|
|
|
|
request = MagicMock()
|
|
request.path = "/api/v1/i18n/packs/en"
|
|
request.headers = {}
|
|
request.match_info = {"lang": "en"}
|
|
|
|
resp = await endpoint.handle(request)
|
|
|
|
assert resp.status == 200
|
|
payload = json.loads(resp.body.decode("utf-8"))
|
|
assert isinstance(payload, dict)
|
|
assert "cli.verify_system_status.title" in payload
|