mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
76 lines
2.3 KiB
Python
76 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
|