fix: respect root_path in FastAPI docs
This commit is contained in:
@@ -51,6 +51,7 @@ class Settings(BaseSettings):
|
||||
loki_port: int = Field(default=3100, validation_alias="LOKI_PORT")
|
||||
loki_enabled: bool = Field(default=False, validation_alias="LOKI_ENABLED")
|
||||
credential_encryption_key: str = Field(default="", validation_alias="CREDENTIAL_ENCRYPTION_KEY")
|
||||
root_path: str = Field(default="", validation_alias="PORTFOLIOHUB_ROOT_PATH")
|
||||
|
||||
model_config = SettingsConfigDict(
|
||||
env_prefix="PORTFOLIOHUB_",
|
||||
|
||||
@@ -63,6 +63,7 @@ def create_app(
|
||||
version=settings.app_version,
|
||||
docs_url="/docs",
|
||||
redoc_url="/redoc",
|
||||
root_path=settings.root_path,
|
||||
lifespan=lifespan,
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from app.main import create_app
|
||||
from app.core.config import Settings
|
||||
|
||||
|
||||
def test_docs_uses_root_path_for_openapi_url() -> None:
|
||||
app = create_app(settings_factory=lambda: Settings(root_path="/portfolio-hub"))
|
||||
|
||||
with TestClient(app) as client:
|
||||
response = client.get("/docs")
|
||||
|
||||
assert response.status_code == 200
|
||||
assert "url: '/portfolio-hub/openapi.json'" in response.text
|
||||
|
||||
|
||||
def test_openapi_is_served_under_root_path() -> None:
|
||||
app = create_app(settings_factory=lambda: Settings(root_path="/portfolio-hub"))
|
||||
|
||||
with TestClient(app) as client:
|
||||
response = client.get("/portfolio-hub/openapi.json")
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.json()["info"]["title"] == "PortfolioHub"
|
||||
Reference in New Issue
Block a user