diff --git a/run.py b/run.py index ddd5537d9..7de9b993a 100644 --- a/run.py +++ b/run.py @@ -10,6 +10,7 @@ import uvicorn from fastapi import FastAPI, HTTPException +from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from voicevox_engine import __version__ @@ -176,6 +177,25 @@ def get_core(core_version: Optional[str]) -> CoreAdapter: ) ) + @app.get("/", response_class=HTMLResponse, tags=["その他"]) + async def get_portal() -> str: + """ポータルページを返します。""" + engine_name = engine_manifest_data.name + + return f""" + + + {engine_name} + + +

{engine_name}

+ {engine_name} へようこそ! + + """ + app = configure_openapi_schema(app) return app diff --git "a/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" "b/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" index 9994e9e69..64091444f 100644 --- "a/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" +++ "b/test/e2e/__snapshots__/test_openapi/test_OpenAPI\343\201\256\345\275\242\343\201\214\345\244\211\343\202\217\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\347\242\272\350\252\215.json" @@ -1109,6 +1109,28 @@ }, "openapi": "3.1.0", "paths": { + "/": { + "get": { + "description": "ポータルページを返します。", + "operationId": "get_portal__get", + "responses": { + "200": { + "content": { + "text/html": { + "schema": { + "type": "string" + } + } + }, + "description": "Successful Response" + } + }, + "summary": "Get Portal", + "tags": [ + "その他" + ] + } + }, "/accent_phrases": { "post": { "description": "テキストからアクセント句を得ます。\nis_kanaが`true`のとき、テキストは次のAquesTalk 風記法で解釈されます。デフォルトは`false`です。\n* 全てのカナはカタカナで記述される\n* アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。\n* カナの手前に`_`を入れるとそのカナは無声化される\n* アクセント位置を`'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。\n* アクセント句末に`?`(全角)を入れることにより疑問文の発音ができる。", diff --git a/test/e2e/single_api/__snapshots__/test_get_root.ambr b/test/e2e/single_api/__snapshots__/test_get_root.ambr new file mode 100644 index 000000000..5233f5ea6 --- /dev/null +++ b/test/e2e/single_api/__snapshots__/test_get_root.ambr @@ -0,0 +1,18 @@ +# serializer version: 1 +# name: test_get_root_200 + ''' + + + + DUMMY Engine + + +

DUMMY Engine

+ DUMMY Engine へようこそ! + + + ''' +# --- diff --git a/test/e2e/single_api/test_get_root.py b/test/e2e/single_api/test_get_root.py new file mode 100644 index 000000000..a1e4b665c --- /dev/null +++ b/test/e2e/single_api/test_get_root.py @@ -0,0 +1,12 @@ +""" +/ API のテスト +""" + +from fastapi.testclient import TestClient +from syrupy.assertion import SnapshotAssertion + + +def test_get_root_200(client: TestClient, snapshot: SnapshotAssertion) -> None: + response = client.get("/") + assert response.status_code == 200 + assert snapshot == response.content.decode("utf-8")